在WSP中将Silverlight xaps部署到ClientBin

时间:2014-02-01 00:57:32

标签: sharepoint visual-studio-2012 wsp

我的解决方案中有其他项目正在构建一些xaps,我需要将xaps包含在生成的WSP中。

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

这适用于我的开发箱,因为我可以确保我执行所有这些步骤以保持包管理器满意,但它不能在团队构建机器上工作。我是否可以采取措施确保包管理器抓住这些空白甚至其他方式来实现我想要做的事情?

1 个答案:

答案 0 :(得分:0)

我在Layouts\ClientBin中为所有要复制的xaps创建了空占位符 这不是最佳的,因为它需要一些手动依赖管理,但它的工作原理。

最终结果是程序包管理器知道在VS中打开项目时存在的那些文件,并且需要将它们打包到WSP中。复制操作与以前一样,但现在打包了新文件。

相关问题