考虑C++/WinRT Visual Studio项目,建议在C++/WinRT扩展和C++/WinRT NuGet包之间使用哪一个?我目前已经安装了这两个,如果我删除其中任何一个,项目都会产生错误。首选设置是什么?该扩展可以在扩展-〉管理扩展-〉安装. NuGet包下的包管理器中找到。
kmpatx3s1#
NuGet包是必需的。它包含代码生成器和基本库实现。VSIX提供了项目模板。实际编译项目并不需要它,但它确实设置了驱动代码生成的所有构建步骤。一旦创建了项目,就不再需要VSIX了。为了澄清VSIX扩展和NuGet包的用途,Ryan Shepherd最近发表了一条评论。以下是相关摘录:C++/WinRT的大部分功能都是由CppWinRT NuGet package提供的,其中包括cppwinrt编译器和MSBuild逻辑。VSIX提供的唯一功能是项目模板和调试可视化工具。这些项目模板创建一个引用CppWinRT NuGet package的项目。
5uzkadbs2#
只是想加一点“更新”......如果你用的是VS 2022,就不需要C++/WinRT扩展(VSIX);但是作为IInspectable says,您确实需要Nuget包。来自微软的Introduction to C++/WinRT:Visual Studio 2022附带了内置的C++/WinRT项目和项模板,因此您可以立即开始C++/WinRT开发。它还附带了C++/WinRT投影类型的Visual Studio本机调试可视化(natvis);提供类似于C#调试的体验。Natvis对于调试版本是自动的。有关更多信息,请参见Visual Studio C++/WinRT本机调试可视化。对于旧版本的Visual Studio,您需要从Visual Studio市场下载并安装最新版本的C++/WinRT Visual Studio扩展(VSIX)。
2条答案
按热度按时间kmpatx3s1#
NuGet包是必需的。它包含代码生成器和基本库实现。
VSIX提供了项目模板。实际编译项目并不需要它,但它确实设置了驱动代码生成的所有构建步骤。一旦创建了项目,就不再需要VSIX了。
为了澄清VSIX扩展和NuGet包的用途,Ryan Shepherd最近发表了一条评论。以下是相关摘录:
C++/WinRT的大部分功能都是由CppWinRT NuGet package提供的,其中包括cppwinrt编译器和MSBuild逻辑。
VSIX提供的唯一功能是项目模板和调试可视化工具。这些项目模板创建一个引用CppWinRT NuGet package的项目。
5uzkadbs2#
只是想加一点“更新”......如果你用的是VS 2022,就不需要C++/WinRT扩展(VSIX);但是作为IInspectable says,您确实需要Nuget包。
来自微软的Introduction to C++/WinRT:
Visual Studio 2022附带了内置的C++/WinRT项目和项模板,因此您可以立即开始C++/WinRT开发。它还附带了C++/WinRT投影类型的Visual Studio本机调试可视化(natvis);提供类似于C#调试的体验。Natvis对于调试版本是自动的。有关更多信息,请参见Visual Studio C++/WinRT本机调试可视化。
对于旧版本的Visual Studio,您需要从Visual Studio市场下载并安装最新版本的C++/WinRT Visual Studio扩展(VSIX)。