将msbuild属性传递给命令行上的devenv.exe

时间:2016-11-17 16:15:36

标签: visual-studio command-line msbuild continuous-integration

我正在CI服务器上使用devenv.exe自动构建解决方案,这完全正常。出于部署目的,我添加了一个nuget包(即OctoPack)。它的文档告诉我在构建时将属性传递给MSBuild,但是当我使用devenv时,这是不可能的。

通过研究,我了解到我可以将 PropertyGroup 添加到项目的.csproj,以添加这些属性。我宁愿不这样做,因为我需要替换这些属性中的某些值(如版本号),所以我不想将占位符放入这些字符串中。此外,我需要能够在CI服务器上构建时使这些PropertyGroup仅处于活动状态,而不是在本地开发和构建时。

这最终导致了我的问题:我可以以某种方式将那些通常传递给MSBuild的属性(通过/p:)传递给命令行上的devenv吗?

1 个答案:

答案 0 :(得分:3)

(我正在发布答案,以便可以关闭此问题)。

  1. 我建议您不要在CI服务器上使用devenv.exe。

  2. 开始使用msbuild.exe。

  3. 使用

  4. 传入参数
      

    / property:name = value / p:name = value

    1. 使用nuget.exe恢复MySolution.sln恢复包。