我有一个Silverlight项目安排如下:
Silverlight DLL中包含{Multiple Sub Directories}下的代码并进行编译,但是我也希望将这些文件作为“内容”包含在xap文件中。想想.NET控件的演示应用程序,它们会向您展示演示,但也会使用C#/ xaml代码来实现它。这就是我想要做的。
我想在输出xap文件中包含Examples / Silverlight / ExampleCode文件夹下的所有文件/文件夹。为此,我在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任务或命令行后期构建事件?
答案 0 :(得分:2)
您可以通过将文件添加到Silverlight项目的XapFilesInputCollection
目标中的AfterCompile
来解决此问题。但请注意,在Visual Studio中编译时,直接在项目中包含bin文件夹可能会导致访问被拒绝错误。
<Target Name="AfterCompile">
<ItemGroup>
<XapFilesInputCollection Include="$(SolutionDir)Examples\Silverlight\Bin\$(Configuration)\ExampleCode"/>
</ItemGroup>
</Target>