0

ソリューション内の他のプロジェクトによってビルドされているいくつかの xap があり、その xap を結果の WSP に含める必要があります。

サブフォルダーClientBinを持つマップされたフォルダーLayoutsがあり、csproj には次のものがあります。

<ItemGroup>
  ...
  <Folder Include="Layouts\ClientBin\" />
  ...
  <Content Include="Layouts\ClientBin\*.xap" />
</ItemGroup>
...
<Target Name="BeforeLayout">
  <ItemGroup>
    <XAPFiles Include="..\..\out\$(Configuration)\bin\sl\xap\**\*.xap" />
  </ItemGroup>
  <Copy SourceFiles="@(XAPFiles)" DestinationFolder="Layouts\ClientBin" OverwriteReadOnlyFiles="true" />
</Target>

宛先フォルダーから xaps を削除し、VS で SP プロジェクトを開くと、パッケージ マネージャーには何も含まれていないレイアウト フォルダーが表示されます。そして、私がビルドすると、WSPにパッケージ化されたxapはありませんが、コピー操作はプロジェクトに対してローカルで機能しました。再構築しても何も変わりません。プロジェクトをアンロードして再ロードしてからビルドすると、必要なファイルが WSP に含まれています。

これは、パッケージ マネージャーを満足させるためにこれらすべての手順を実行していることを確認できるため、開発ボックスでは機能しますが、チーム ビルド マシンでは機能しません。パッケージ マネージャーがこれらの xaps を確実に取得するための手順や、私がやろうとしていることを達成するための他の方法はありますか?

4

1 に答える 1

0

Layouts\ClientBinすべての xap をコピーするために空のプレースホルダーを作成しました。
手動の依存関係管理が必要だったので、これは最適ではありませんでしたが、うまくいきました。

最終的に、パッケージ マネージャーは、VS でプロジェクトを開いたときにそれらのファイルが存在することを認識し、WSP にパッケージ化する必要があることを認識します。コピー操作は以前と同じように機能しますが、新しいファイルがパッケージ化されます。

于 2014-07-07T19:43:32.097 に答える