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

时间:2010-07-07 11:15:25

标签: visual-studio-2010 build teamcity

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

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

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

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

2 个答案:

答案 0 :(得分:4)

你不能说服IDE让它绝对。可能的解决方案:

  1. 使用构建后事件来对构建输出进行xcopy
  2. 如果输出目录位于另一个驱动器上,它将不会使路径相对。您可以使用SUBST命令将驱动器号(如z:)映射到c:上的文件夹,并以这种方式欺骗IDE
  3. 直接在构建计算机上运行msbuild.exe。使用/ p命令行选项将OutDir属性强制为另一个值。
  4. 解决方案3可能是最好的,因为你可以使它特定于构建机器而不需要修改项目文件并使开发人员的生活变得困难。该命令看起来应该类似于:

     msbuild /p:outdir=c:\mumble\ projectOrSolutionFileName
    

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

答案 1 :(得分:1)

您无法说服IDE使用绝对路径,但您可以更改项目文件:

<OutputPath>C:\Dir1\Dir2</OutputPath>

您的IDE仍将显示相对路径,但它将存储绝对路径。

使用Visual Studio 2010 Sp1为我工作

相关问题