我需要使用Microsoft Visual C ++ 2010和MSBuild为几个不同的平台构建我的软件。我将平台添加到$(VCTargetsPath)目录并创建.props和.targets文件。然后,我将文件复制到配置管理存储库,为复制的文件定义了父目录的路径:$(CM_REPO_PATH),并希望重定向visual studio以使用存储库中的文件。
当我在我的机器上创建名为%MSBuildExtensionsPath%的环境变量并将其指向$(CM_REPO_PATH)\ MSBuild时,我能够使项目正常工作。但我想要的是在visual studio项目中设置$(VCTargetsPath)和/或$(MSBuildExtensionsPath),而不是在每个开发人员的机器上设置环境变量。
当我添加属性组来执行此操作时...
<PropertyGroup>
<VCTargetsPath>$(CM_REPO_PATH)\MSBuild\Microsoft.Cpp\v4.0</VCTargetsPath>
<MSBuildExtensionsPath>$(CM_REPO_PATH)\MSBuild</MSBuildExtensionsPath>
<MSBuildExtensionsPath32>$(CM_REPO_PATH)\MSBuild</MSBuildExtensionsPath32>
</PropertyGroup>
...新平台不可用(好像项目仍在使用默认的$(VCTargetsPath),而不是指定的那个)。有没有办法从项目文件中覆盖$(VCTargetsPath)?
答案 0 :(得分:0)
您的最初声明是,您想为许多不同的平台构建项目。
https://docs.microsoft.com/en-us/visualstudio/extensibility/visual-cpp-project-extensibility?view=vs-2017非常详细地描述了如何在Visual Studio 2017中实现这一点。希望对于所使用的版本也是如此。
这样做的好处是,您根本不需要更改$(VCTargetsPath)。