MSBuild:覆盖.user文件的路径

时间:2011-03-24 09:45:32

标签: msbuild

我们有许多标准.vcxproj文件,我们使用MSBuild构建。对于某些属性和目标,我们需要.vcxproj.user文件来覆盖特定于正在进行的构建的属性。

为了在开发环境中使用与构建机器相同的构建过程,我们希望将.vcxproj.user的路径指定为.vcxproj文件的不同目录,因此构建过程可以在单独的目录中生成所需的文件,而不会干扰用户自己的设置。

我发现很少有关于msbuild查找.user文件的文档,或者甚至可以指定路径?

1 个答案:

答案 0 :(得分:4)

cpp项目的路径* .user文件在 C:\ Program Files \ MSBuild \ Microsoft.Cpp \ v4.0 \ Microsoft.Cpp.Default.props

中指定
    <MSBuildAllProjects Condition="Exists('$(MSBuildProjectFullPath).user')">$(MSBuildAllProjects);$(MSBuildProjectFullPath).user</MSBuildAllProjects>

它旨在指定自定义用户设置(例如,您可以指定要在调试中运行的应用程序)并且无法更改。

要更改构建过程,您可以使用 CustomBeforeMicrosoftCommonTargets 。您可以创建自己的* .targets文件,该文件将导入特殊属性/目标,更改构建过程以进行一些预处理操作等。我为AfterTargets here写了一个例子。您所需要的只是实现自定义构建逻辑并将注册更改为BeforeTargets。