2017-02-23 1 views
0

Ich habe ein Powershell-Skript, das als Pre-Build-Aufruf für eine Xamarin Mobile App ausgeführt wird. Das Skript ändert den Paketnamen so, dass er dem Buildtyp entspricht, z. Debuggen, Freigeben.Powershell Pre-Build Skript fehlgeschlagen von Msbuild

Um verschiedene "Geschmacksrichtungen" der App zu erstellen, habe ich eine Batchdatei geschrieben, um die Konfigurationsdatei der App durch eine mit dem angeforderten Buildtyp zu ersetzen.

Wenn ich aus Visual Studio heraus erstelle, läuft das Powershell-Skript wie erwartet und ändert, was ich erwartet habe. Allerdings, wenn die Batchdatei läuft ich eine Fehlermeldung erscheint:

enter image description here

Hier ist der Inhalt der Batchdatei, das war mein erster Versuch, eine Batch-Datei auf dem Schreiben ein Code-Projekt zu erstellen:

@ECHO OFF 
set buildVer=%1 
set path=XamarinTestApp\XamarinTestApp 
set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v4.0.30319 

echo %buildVer% 

IF "%buildVer%"=="Release" (
goto :releaseBuild) 

IF "%buildVer%"=="Test" (
goto :testBuild) 

IF "%buildVer%"=="Dev" (
goto :devBuild) 

:releaseBuild 
set buildType=Release 
copy /-y %path%\app.Release.config %path%\app.Config 
goto :builder 

:testBuild 
set buildType=Release 
copy /-y %path%\app.Test.config %path%\app.Config 
goto :builder 

:devBuild 
set buildType=Debug 
copy /-y %path%\app.Debug.config %path%\app.Config 
goto :builder 

:builder 
call %msBuildDir%\msbuild.exe 
C:\Projects\%path%\XamarinTestApp.Droid\XamarinTestApp.Droid.csproj /property:Configuration=%buildType% /target:SignAndroidPackage /verbosity:diag 

Ich suche nach einem Rat entweder auf die Fehlermeldung, die ich bekomme, oder ein Ratschlag, wie konfigurierbare Informationen in meine App zu bekommen.

Danke.

Antwort

0

Verwenden Sie nicht path als Benutzervariable. Es ist vom System vordefiniert, um ausführbare Dateien zu lokalisieren.

Ändern Sie diesen Namen in mypath - fast alles andere als path.

von der Eingabeaufforderung mit dem Befehl

setzte eine unvollständige Liste der Namen von Variablen, um zu sehen, die vom System

+0

I Variablen mypath alle Pfade geändert habe festgelegt, aber ich die gleiche Fehlermeldung. – hydraneth

+0

Leider bin ich kein Powshell-Experte. Aus einigen Referenzen, die mit Google gefunden wurden und nach 'powershell exit 9009 'suchen, scheinen diese Artikel auf" Datei nicht gefunden "zu verweisen http://stackoverflow.com/questions/1351830/what-does-exited-with-code-9009 -mean-without-build http://stackoverflow.com/questions/22730003/msb3073-command-exited-with-code-9009. Welche Datei? Keine Ahnung, aber das ''&' c: project ...' scheint ein Zeiger zu sein. Ich würde vorschlagen, dass Powershell diese ganze Zeichenfolge bis "Release" als Dateiname interpretiert. – Magoo

+0

Ich habe das Problem gelöst, ich habe die "und" aus der Build-Zeichenfolge entfernt, dann beide portable und Android-Projekte auf msbuild Version 14, eins auf 12 und eins auf 4 gesetzt. Dies scheint mein Problem geklärt zu haben. Danke für den Zeiger. – hydraneth

Verwandte Themen