MSBuild:覆盖 .user 文件的路径

Dav*_*one 4 msbuild

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

为了在开发环境中使用与构建机器相同的构建过程,我们想指定路径.vcxproj.user作为.vcxproj文件的不同目录,这样构建过程可以在单独的目录中生成它需要的文件,而无需扰乱用户自己的设置。

我发现很少有关于 msbuild 在哪里查找 .user 文件的文档,或者是否可以指定路径?

Ser*_*kov 5

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

    <MSBuildAllProjects Condition="Exists('$(MSBuildProjectFullPath).user')">$(MSBuildAllProjects);$(MSBuildProjectFullPath).user</MSBuildAllProjects>
Run Code Online (Sandbox Code Playgroud)

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

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