【问题标题】:Force VS2010 to keep the build output path absolute强制VS2010保持构建输出路径绝对
【发布时间】:2011-03-12 18:29:12
【问题描述】:

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

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

由于构建服务器上的项目目录不同(我们使用 TeamCity,因此项目 url 有类似 C:\BuildAgent\work\9358A92GF92 之类的内容),因此输出不会出现在我们想要的位置。

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

【问题讨论】:

    标签: visual-studio-2010 build teamcity


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 将命令行参数添加到 TeamCity 的构建配置中起到了作用。谢谢!
    【解决方案2】:

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

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

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

    适用于我的 Visual Studio 2010 Sp1

    【讨论】:

      猜你喜欢
      • 2013-06-11
      • 1970-01-01
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 2015-08-26
      • 2013-03-31
      相关资源
      最近更新 更多