如何使用PowerShell为MSBuild属性设置值

Sam*_*abu 1 msbuild powershell powershell-2.0 msbuild-4.0

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

<PropertyGroup>
    <BuildDrive Condition="'$(BuildDrive)'==''">Y:</Group>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

如果要使用批处理文件更改构建驱动器,可以执行以下操作:

@echo off

set buildDrive=H:

:: Then call MSBuild

Msbuild /t:BuildTarget %Projectfile% %Logger%
Run Code Online (Sandbox Code Playgroud)

现在,我想使用PowerShell实现相同的目的。

我在PowerShell脚本build.ps1中尝试了以下操作:

$BuildDrive=H:
MSbuild /t:BuildTarget $ProjectFile $Logger
Run Code Online (Sandbox Code Playgroud)

但是,它不遵守$ BuildDrive提供的驱动器号。我知道,如果我按如下方式传递参数,就可以实现,但是当属性数量更多时,这种方法就不方便了。

$BuildDrive=H:
Msbuild /t:BuildTarget /p:BuildDrive=$BuildDrive $projectfile $logger
Run Code Online (Sandbox Code Playgroud)

如何PropertyGroup通过PowerShell 传递值?

man*_*lds 5

您正在设置环境变量。这些可以作为MSBuild中的属性使用。

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

$env:BuildDrive="H:"
Run Code Online (Sandbox Code Playgroud)