2016-03-31 6 views
1

Ich habe dieses Powershell-SkriptWie verhindert Powershell Zusammenführen von Msbuild-Eigenschaften?

$msbuildSettings="/p:Configuration=Release /p:VisualStudioVersion=12.0"; 
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe ..\Sol.sln /t:"Clean;Admin" $msbuildSettings 

der dieser Fehler

The specified solution configuration "Release /p:VisualStudioVersion=12.0|Mixed Platforms" is invalid. 

Msbuild

/p:Configuration=Release /p:VisualStudioVersion=12.0 

ist eine Eigenschaft denkt verursacht.

Wenn ich nicht die Variable msbuildsettings verwenden, die Build-Werke, das heißt

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe ..\WeConnectSol.sln /t:"Clean;WeConnectAdmin" /p:Configuration=Release /p:VisualStudioVersion=12.0 

Wie kann ich feststellen Powershell nicht merge die Eigenschaften?

Antwort

2

Zuerst würde ich Ihnen empfehlen Join-Path und die $env:windir Variable zu verwenden, um den msbuild Pfad zu ermitteln:

$msbuild = Join-Path $env:windir 'Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe' 

Auch würde ich ein Array verwenden, um die Parameter zu definieren:

$parameters = @(
    '..\Sol.sln', 
    '/t:"Clean;Admin"', 
    '/p:Configuration=Release', 
    '/p:VisualStudioVersion=12.0') 

Und schließlich übergeben Sie die Parameter mit splatting:

& $msbuild @parameters 
Verwandte Themen