首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用msbuild开关覆盖proj属性

用msbuild开关覆盖proj属性
EN

Stack Overflow用户
提问于 2015-02-20 11:58:49
回答 1查看 57关注 0票数 0

给出以下proj片段:

代码语言:javascript
复制
<Project DefaultTargets="artifacts" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <msbuild40>"msbuild.exe"</msbuild40>
    </PropertyGroup>

    <Target Name="compile">
        <Exec Command="$(msbuild40) src\ClientFrameworkLoader.sln /t:Build /p:Configuration=Debug;platform=win32" />
        <Exec Command="$(msbuild40) src\ClientFrameworkLoader.sln /t:Build /p:Configuration=Release;platform=win32" />
    </Target>
</Project>

我是否正确地认为我可以使用以下命令覆盖msbuild40属性?

代码语言:javascript
复制
MSBuild.exe snippet.proj /p:msbuild40="C:\Program Files (x86)\MSBuild\12.0\bin\MSBuild.exe"

我现在没有Windows机器,否则我就试试看。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-20 13:26:41

是的,你可以这样覆盖财产。但是,您需要在被调用的命令周围放置引号,因为它包含空格。msbuild中的转义引号是$quot;,这也是一种更多的msbuild方法,它不重复自己的操作,并将希望构建的两种配置都放在ItemGroup中并在其上循环。适用这些修改规定:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="artifacts" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <msbuild40>"msbuild.exe"</msbuild40>
  </PropertyGroup>

  <ItemGroup>
    <Configurations Include="Debug;Release"/>
  </ItemGroup>

  <Target Name="compile">
    <Exec Command="&quot;$(msbuild40)&quot; src\ClientFrameworkLoader.sln /t:Build /p:Configuration=%(Configurations.Identity);platform=win32" />
  </Target>
</Project>

话虽如此,在把它送进野外之前,在windows机器上进行测试也许是明智的:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28628454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档