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 项目时,包管理器会显示其中没有任何内容的布局文件夹。然后,当我构建时,没有一个 xap 被打包在 WSP 中,但复制操作在项目本地工作。如果我重建没有任何改变。如果我卸载并重新加载项目然后构建,WSP 确实包含我需要的文件。

这适用于我的开发箱,因为我可以确保执行所有这些步骤以使包管理器满意,但它不适用于团队构建机器。我可以采取哪些步骤来确保包管理器获取那些 xap 甚至其他方式来实现我想要做的事情?

4

1 回答 1

0

Layouts\ClientBin我为所有要复制的 xap创建了空占位符。
这不是最优的,因为它需要一些手动依赖管理,但它确实有效。

最终结果是,当您在 VS 中打开项目时,包管理器会知道这些文件存在,并且需要将它们打包到 WSP 中。复制操作像以前一样工作,但现在新文件已打包。

于 2014-07-07T19:43:32.097 回答