.net core 无法编译模板C++/通过dotnet build命令执行CLI(.NET Core 3.1)项目 安装最新的稳定的Visual Studio 2019 16.4.2(检查.NET Core Development和带有C++工作负载的桌面开发,同时确保选中了C++/CLI支持组件) 使用CLR类库(.NET Core)创建新项目 模板(或CLR空项目(.NET Core)(如果愿意) 通过dotnet build命令编译将失败(dotnet build CLRNetCoreTest.sln /p:Configuration=Debug/p:Platform=x86):
通过msbuild命令编译成功(%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\msbuild\Current\Bin\msbuild.exe“CLRNetCoreTest.sln/p:Configuration=Debug/p:Platform=x86) 这很奇怪-我认为dotnet是构建在msbuild之上的包装器.net core 无法编译模板C++/通过dotnet build命令执行CLI(.NET Core 3.1)项目 安装最新的稳定的Visual Studio 2019 16.4.2(检查.NET Core Development和带有C++工作负载的桌面开发,同时确保选中了C++/CLI支持组件) 使用CLR类库(.NET Core)创建新项目 模板(或CLR空项目(.NET Core)(如果愿意) 通过dotnet build命令编译将失败(dotnet build CLRNetCoreTest.sln /p:Configuration=Debug/p:Platform=x86):,.net-core,msbuild,c++-cli,visual-studio-2019,.net Core,Msbuild,C++ Cli,Visual Studio 2019,通过msbuild命令编译成功(%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\msbuild\Current\Bin\msbuild.exe“CLRNetCoreTest.sln/p:Configuration=Debug/p:Platform=x86) 这很奇怪-我认为dotnet是构建在msbuild之上的包装器 示例项目是 < />(运行构建.BAT编译)。 < P> C++项目只能用VisualStudio附带的V
示例项目是<强> < />(运行<强>构建.BAT<强>编译)。
< P> C++项目只能用VisualStudio附带的VisualStudio C++工具进行.<代码> MSBudio.exe跨平台<代码> DOTNET < /Cuff>命令及其跨平台MSBug分发没有这些工具,因此无法编译C++项目。
dotnet
命令未使用visual studio版本的MSBuild。添加更多详细信息:
这很奇怪,我以为dotnet是一个基于
msbuild的顶部
<> >同意<马丁> <强>,<代码> dotnet Budio> /Cuff>现在不支持构建C++项目,因为DOTNET CLI不知道在哪里找到必要的C++ <代码> XX。目标< /代码>和<代码> XX。p>
您的项目是一个C++ C++ CLR项目(XX .VCXPROJ),其目标框架是“代码> .NETCAREX/代码>,它与实际<代码>有很大的区别.NET核心< /COD>项目(X.CSPROJ或XX .VBPROJ),
您可以在那里找到许多msbuild目标和道具文件,但找不到Microsoft.Cpp.Default.props文件。这个文件来自C++的工作负载,而不是.NETCAREL SDK。p>
因此,尽管C:\Program Files\dotnet\sdk\xxx
使用msbuild来构建项目,但它实际上并没有使用VS文件夹中相同的msbuild.exe(dotnet build
)。并且只能使用VS IDE或msbuild生成工具包中的msbuild.exe来生成此项目C:\Program Files(x86)\Microsoft Visual Studio\xxx\xxx\msbuild\1xxx\Bin\msbuild.exe
如果您的最终目标是在远程服务器上构建项目,那么您可能正在寻找Visual Studio 2019的构建工具包。(如果您获得了相应的lisense,则免费提供,更多详细信息请参见)它不需要安装VS IDE。(下载链接)它实际上是一个C++项目,dotnet构建不能用于C++项目。谢谢你澄清。顺便说一句,我们已经在服务器上使用Visual Studio 2019的构建工具了。但它不是免费的,它与Visual Studiohmm一样,如果你已经满足免费VS2019社区版的要求,因为构建工具是它的补充,你也可以使用免费构建工具,无需安装完整的VS community 2019版本…我们公司是企业版,不满足免费VS2019社区版本的要求。
如果您获得相应的lisense,则免费。
可能更合适!只要用你分享的有用信息更新答案,谢谢:)谢谢。您是第一位,但Lance Li MSFT提供了更详细的答案。嗨,Martin,您是否有过csproj和vcxproj混合项目解决方案的经验?如果我尝试在解决方案级别上构建dotnet,vcxproj将无法构建。虽然csproj项目可以构建。。。我正在将.net4.8转换为.net5.0,这是我正在努力解决的问题之一。