ビルド サーバーで Service Fabric アプリケーションをビルドしようとしています。.sln ファイルをビルドすると、sfproj の Package ターゲットが実行されません。予想通り。MSBuild でこのターゲットを実行できないようです。
まず、.sln ファイルに対してビルドするときに使用できるターゲットは、標準のビルドおよびパブリッシュ ターゲットのみです。
次に、.sfproj 自体に対してビルドすると、ターゲットが実行されます。ただし、$(BuildPlatform) の不一致のため、.sfproj によって参照されるプロジェクトは正しくビルドされません。.sfproj には x64 プラットフォームがあります。私の他のプロジェクトのほとんどは Any CPU です。
これは Service Fabric に関する質問ではなく、一般的な MSBuild に関する質問だと思います。プロジェクトのすべてのプラットフォーム オプションを統合する必要のないソリューションを探しています。Service Fabric は本当に x64 のみであり、私の他のプロジェクトは本当にすべての CPU です。
[編集]
私はこれを解決しました。私がしたことは、.sfproj ファイルに という新しいターゲットを追加し、MaybePublish
それをデフォルトのターゲットの 1 つとして設定することでした。for がMaybePublish
あります。に設定しています。基本的に、ソリューションのビルド時にプロパティが設定されている場合、このターゲットはオプションで Service Fabric アプリケーションをパッケージ化します。Condition
'$(Package)' == 'true'
DependsOnTarget
Package
これはおそらくDeployOnBuild
、Web パブリッシング プロジェクトで機能する方法だと思います。Service Fabric ターゲット ファイルには、既定でこの種類のサポートが含まれている必要があります。