强制VS2010保持构建输出路径绝对

Tom*_*han 7 teamcity build visual-studio-2010

我们希望让我们的构建服务器将每个构建的输出发送到
C:\Projects\{project name}\build\{build configuration}\.

为此,我将项目的Build Output路径属性设置为Visual Studio 2010中的属性,并在本地构建以确保一切正常.例如,当我这样做时,visual studio将路径更改为相对路径..\..\build\Debug.

由于项目目录在构建服务器上是不一样的(我们使用TeamCity,因此项目URL有类似C:\ BuildAgent\work\9358A92GF92),输出不会在我们想要的地方结束.

如何使Visual Studio 将构建输出路径更改为相对路径?

Han*_*ant 5

您无法说服 IDE 将其设为绝对。可能的解决方案:

  1. 使用构建后事件 xcopy 构建输出
  2. 如果输出目录在另一个驱动器上,它不会使路径相对。您可以使用 SUBST 命令将像 z: 这样的驱动器号映射到 c: 上的文件夹,并以这种方式欺骗 IDE
  3. 直接在构建机器上运行 msbuild.exe。使用 /p 命令行选项将 OutDir 属性强制为另一个值。

解决方案 3 可能是最好的,因为您可以使其特定于构建机器,而无需修改项目文件并使开发人员的生活变得困难。该命令应类似于以下内容:

 msbuild /p:outdir=c:\mumble\ projectOrSolutionFileName
Run Code Online (Sandbox Code Playgroud)

请注意,输出目录名称必须以反斜杠结尾