2017-06-28 9 views
0

まず、Xamarinライフサイクル全体の初心者です。ツールや用語を作成します。いくつかの言葉遣い。xbuildを使用してマルチプロジェクトソリューションからプロジェクトを1つだけ構築する

Example.sln以下のプロジェクト定義のファイルがあります。アンドロイド用とiOS用の1:私は現在、コマンドラインでxbuildばかりのiOSプロジェクトを構築しようとしている

Project("{...}") = "Example", "Example\Example\Example.csproj", "{...}" 
EndProject 
Project("{...}") = "Example.Droid", "Example\Example.Droid\Example.Droid.csproj", "{...}" 
EndProject 
Project("{...}") = "Example.iOS", "Example\Example.iOS\Example.iOS.csproj", "{...}" 
EndProject 

。私の質問は、xbuildフラグでこれを指定する方法がある場合です。例えば/t:Example.ios:Buildで試してみました。 、

ドロイドプロジェクトは .sln上 iOSの前にまだ ているので、私は推測する、
$ xbuild /p:Configuration="Ad-Hoc" \ 
/p:Platform="iPhone" \ 
/p:IpaPackageDir="./Builds" \ 
/t:Build Example.sln 

のAndroid SDKを探していたときに失敗している:だから私は単純にAndroidのプロジェクトやランニングをアンバンドリングしようとした

/Users/ci/Example-app/Example.sln (Build) -> 
(Build target) -> 
/Users/ci/Example-app/Example/Example.Droid/Example.Droid.csproj (default targets) -> 
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets (_BuildSdkCache target) -> 

    : error XA5205: The Android SDK Directory could not be found. Please set via /p:AndroidSdkDirectory. 

一時的にソリューションからAndroidプロジェクトを削除すると(Example\Example.Droidのファイルは保存されていますが、2行はコメントアウトされていますが)私にとっては最適ではありません。つまり、他のCIジョブでは、

ありがとうございます!

答えて

0

私はあなたのXamarinのiOSプロジェクトのフォルダからxbuildコマンドを実行したり、このようなあなたのコマンドのターゲットを指定するようお勧めします:

xbuild /p:..... iOSProject/app.csproj 

xbuildは、プロジェクトまたはソリューションのパスを取りますビルドするファイルは、 主な引数です。ファイルが指定されていない場合は、 ソリューションファイルまたはプロジェクトファイルを現在のディレクトリに作成します。このディレクトリには * projという拡張子が付きます。

あなたが指定する必要がSDKまたは特定のビルドツールパスを強制する必要がある場合:

/P:AndroidSdkDirectory = $ YOUR_SDK_PATH
/p:AndroidSdkBuildToolsVersion=23.xx

xbuild command reference

1

ケースPlatform=iPhoneのAndroidプロジェクトをConfiguration manager (see Solution Configurations section)で無効にすることができます。または、共通のプロジェクトとiOSのものだけを有効にするソリューション用の別のconfig/platformコンボを作成することもできます。

これを取得したら、xbuildまたはmsbuildで xbuild /p:Configuration=.. /p:Platform=.. foo.slnというコマンドラインでその設定とプラットフォームの組み合わせを選択できます。

関連する問題