2017-02-23 8 views
0

私は、Xamarinモバイルアプリケーションのビルド前の呼び出しとして実行するPowershellスクリプトを用意しています。スクリプトはパッケージ名をビルドタイプに合わせて変更します。デバッグ、リリース。Powershell Pre-Buildスクリプトがmsbuildから失敗しました

アプリのさまざまな「味」を作成できるように、アプリの設定ファイルを要求されたビルドタイプに一致するものに置き換えるバッチファイルを作成しました。

私はVisual Studio内からビルドすると、期待どおりにPowerShellスクリプトが実行され、期待したものが変更されます。ただし、バッチファイルを実行すると、私が表示されるエラーメッセージを取得するとき:ここ

enter image description here

は、これはコードプロジェクトをビルドするためのバッチファイルを書き込んで、私の最初の試みであった、バッチファイルの内容です:

@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 

私は、私が得ているエラーメッセージか、設定可能な情報を自分のアプリケーションに取得する方法に関するアドバイスを探しています。

ありがとうございました。

答えて

0

pathをユーザー変数として使用しないでください。実行可能ファイルを見つけるために、システムによってあらかじめ定義されています。

この名前をmypathに変更してください。ほとんどの場合、path以外に変更してください。プロンプトから

は私がmypathでのすべてのパス変数を変更したシステム

+0

によって設定された変数の名前のリストの一部を見ることが

を設定するが、私はgetコマンドを使用します同じエラーメッセージ。 – hydraneth

+0

悲しいことに、私はパワーシェルの専門家ではありません。 Googleを使って見つかったいくつかの参考文献から、 'powershell exit 9009'を検索すると、これらの記事は" file not found "を指しているようです。http://stackoverflow.com/questions/1351830/what-does-exited-with-code-9009 -eman-during-this-build http://stackoverflow.com/questions/22730003/msb3073-command-exited-with-code-9009。どのファイルですか?いい考えはしませんが、 ''& 'c:project ...'はポインタのようです。 powershellがその文字列全体をファイル名として '' Release''まで解釈することをお勧めします。 – Magoo

+0

私は問題を解決し、ビルド文字列から "and"を削除し、ポータブルとアンドロイドの両方のプロジェクトをmsbuildバージョン14を使用するように設定しました.1つは12、もう1つは4でした。ポインタありがとう。 – hydraneth

関連する問題