Msbuild是否识别除DEBUG | RELEASE之外的任何构建配置

Dea*_*ean 21 msbuild visual-studio-2005

我通过Visual Studio创建了一个名为Test的配置,它目前只接受所有DEBUG设置,但是如果构建恰好是TEST | DEBUG | RELEASE,我会使用编译器条件来确定一些特定的操作.

但是,如何让我的MSBUILD脚本检测TEST配置?

目前我正在建设

 <MSBuild Projects="@(SolutionsToBuild)" Properties="Configuration=$(Configuration);OutDir=$(BuildDir)\Builds\" />
Run Code Online (Sandbox Code Playgroud)

@(SolutionsToBuild)是我的解决方案.在Common MsBuild Project Properties中,它声明$(Configuration)是一个公共属性,但它总是显示为空白?

这是否意味着它永远不会被设置,但只是保留供我使用或它只能检测DEBUG | RELEASE.如果是这样,允许创建不同的构建配置有什么意义?

Mar*_*iek 42

我没有做太多定义MSBUILD配置文件,但我已经使用像这样的批处理文件完成了不同配置的构建

msbuild /v:n /p:Configuration=Release "Capture.sln" 
msbuild /v:n /p:Configuration=ReleaseNoUploads "Capture.sln" 
Run Code Online (Sandbox Code Playgroud)

我在Visual Studio中定义了ReleaseNoUploads配置.

这是我必须做的(这是Visual Studio 2005):

  • 打开Tools:Options菜单,转到Projects and Solutions:General选项,然后选中Show advanced build configurations.
  • 从那里,转到Build:Configuration Manager菜单
  • 在弹出的对话框中,单击Active solution configuration下拉列表,然后单击<New ...>以创建新的构建配置.


Chr*_*nce 5

当然,您可以拥有任意数量的自定义构建配置.有关设置的外观,请参阅此相关问题.

如何根据构建配置有条件地部署app.config?