从头开始构建vcxproj | $(VCTargetsPath)解析为C:\

时间:2018-11-25 18:41:32

标签: c++ msbuild

为了与MSBuild更加亲密,我想从头开始构建vcxproj并通过命令行使用msbuild。我正在关注Docs,如何从头开始构建项目。

用目录结构制作一个简单的程序后:

%Root%\include\main.h
%Root%\src\main.cpp
%Root%\sample.vcxproj

我按照上面的链接构建了vcxproj文件。我做了必要的更改以反映我的目录结构。

在我的系统上,我安装了Visual Studio 2017,并具有所有必需的MSBuild工具。我遇到的问题是$(VCTargetsPath)默认解决为C:\

搜索后,似乎需要设置注册表KvP以确保其正确解析-see here。这对我来说似乎很奇怪,因为当我检查由我在Visual Studio中创建的项目制作的vcxproj文件时,它们使用相同的$(VCTargetsPath)引用,并且一切正常。另外,在说明需要更改注册表项的链接中,我找不到系统上以*\Microsoft.cpp\v4.0\*结尾的目录。

关于如何使$(VCTargetsPath)正确解决的任何想法?

编辑:这是我解决此问题的方法: 在我的sample.vcxproj文件中,创建了一个属性组,该属性组将$(VCTargetsPath)定义为已知位置-C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets,就像这样。

  <PropertyGroup>
      <VCTargetsPath>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\</VCTargetsPath>
  </PropertyGroup>

然后从powershell中,我跑了

cmd /c "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild.exe" sample.vcxproj /p:configuration=debug

0 个答案:

没有答案