【问题标题】:How to set a value for MSBuild property using PowerShell如何使用 PowerShell 为 MSBuild 属性设置值
【发布时间】:2012-01-22 11:35:12
【问题描述】:

我有一个属性来指定构建驱动器:

<PropertyGroup>
    <BuildDrive Condition="'$(BuildDrive)'==''">Y:</Group>
</PropertyGroup>

如果我想使用批处理文件更改构建驱动器,我可以这样做:

@echo off

set buildDrive=H:

:: Then call MSBuild

Msbuild /t:BuildTarget %Projectfile% %Logger%

现在我想使用 PowerShell 实现同样的目标。

我在我的 PowerShell 脚本 build.ps1 中尝试如下:

$BuildDrive=H:
MSbuild /t:BuildTarget $ProjectFile $Logger

但它不支持通过 $BuildDrive 提供的驱动器号。 我知道如果按如下方式传递一个参数就可以实现,但是当属性数量更多时,这种方法并不好用。

$BuildDrive=H:
Msbuild /t:BuildTarget /p:BuildDrive=$BuildDrive $projectfile $logger

如何通过 PowerShell 传递 PropertyGroup 值?

【问题讨论】:

    标签: powershell msbuild powershell-2.0 msbuild-4.0


    【解决方案1】:

    您正在设置环境变量。这些在 MSBuild 中作为属性提供。

    您可以在 PowerShell 中执行以下操作:

    $env:BuildDrive="H:"
    

    【讨论】:

    • 我认为 Builddrive 是我自己的财产,即使我有一些名为 dummy 的属性名称并且指定了条件,那么它可以被批处理文件替换。Y: I
    • @Samselvaprabu - 我不明白你想说什么。您是否尝试过脚本中我的答案中给出的行?
    • 哇。有用。因此,当条件被传递给属性组时,它将被视为环境变量。是这样吗?
    • @Samselvaprabu - 在这里阅读:msdn.microsoft.com/en-us/library/ms171459(v=VS.100).aspx。另外,接受作为答案(在左侧打勾)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 2011-08-02
    • 2013-02-14
    相关资源
    最近更新 更多