Silverlight的MSBuild任务 - 执行命令行XAP复制到的ClientBin后(Sil

2019-07-28 21:03发布

我有一个Silverlight项目安排如下:

  • 例子
    • Silverlight的
      • 箱子
        • 调试
    • ExampleCode
      • {多个子目录}
  • Silverlight.Web
    • 箱子
      • 调试
        • 的ClientBin
          • Silverlight.Web.xap

下{多子目录}代码包含在Silverlight的DLL和编译的,但是我也希望包括这些文件作为XAP文件“内容”。 想想为您展示一个演示也是C#/ XAML代码来实现它的.NET控件演示应用。 这就是我想要做的事。

  • 我不能选择包括为内容,因为它们已被包含在编译
  • 我不能包括的文件两次,编译一个和内容等为VS2010不会放过你的。

我想包括所有的例子/ Silverlight的/ ExampleCode输出XAP文件夹下的文件/文件夹。 要做到这一点,我试图在Silverlight.Web项目生成后事件。 语法如下:

"$(SolutionDir)..\Lib\7Zip\7z.exe" a  -tzip 
    "$(ProjectDir)ClientBin\Silverlight.Web.xap" 
    "$(SolutionDir)Examples\Silverlight\Bin\Debug\ExampleCode"

现在,如果我在它完美控制台窗口中执行此操作。 XAP文件被更新。 但是,如果我从Silverlight.Web没什么生成后事件执行它发生(没有失败,只是没有)。

我认为在创建XAP文件之前生成后事件。

有谁知道XAP文件复制到的ClientBin 我如何运行一个MSBuild任务或命令行生成后事件与参数?

Answer 1:

您可以通过添加文件来解决此XapFilesInputCollectionAfterCompile您的Silverlight项目的目标。 但是请注意,在Visual Studio编译时直接在项目中包括bin文件夹可能会导致与拒绝访问错误。

<Target Name="AfterCompile">
  <ItemGroup>
    <XapFilesInputCollection Include="$(SolutionDir)Examples\Silverlight\Bin\$(Configuration)\ExampleCode"/>
  </ItemGroup>
</Target>


文章来源: Silverlight MSBuild Task - execute command line after Xap copied to ClientBin