Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.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 - Fatal编程技术网

.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 无法编译模板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

通过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附带的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),X.VCXPROJ导入许多不包含在代码> > .NETCORSDK SD/<代码>中的C++特定文件。 例如:转到

C:\Program Files\dotnet\sdk\xxx
您可以在那里找到许多msbuild目标和道具文件,但找不到Microsoft.Cpp.Default.props文件。这个文件来自C++的工作负载,而不是.NETCAREL SDK。p> 因此,尽管
dotnet build
使用msbuild来构建项目,但它实际上并没有使用VS文件夹中相同的msbuild.exe(
C:\Program Files(x86)\Microsoft Visual Studio\xxx\xxx\msbuild\1xxx\Bin\msbuild.exe
)。并且只能使用VS IDE或msbuild生成工具包中的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,这是我正在努力解决的问题之一。