如果您在Visual Studio中创建Windows Phone 8应用程序并引用任何带有nuget或手动提供的XML文档文件的库,Visual Studio将自动将这些XML文件打包到输出XAP中。
在我们的例子中,Visual Studio的这种奇怪行为几乎使XAP大小增加了两倍。 (我们总共有8Mb的xml文档。)
WP7应用程序项目没有这样的问题。
如何通过强制Visual Studio不打包不必要的文档文件来减小xap文件的大小?
2013年2月14日更新:
重现问题的步骤:
你会发现许多不必要的XML文档文件,如“System.Reactive.Core.xml”
我认为这是安全问题,因为如果您为项目(或解决方案中的其他项目)启用XML文档生成,那些XML文档也将被打包到XAP中 - 当任何人都可以阅读您的评论时,这是非常不受欢迎的代码。
答案 0 :(得分:6)
于2013年2月20日更新
正如@ A-student在评论中指出的那样,我之前的解决方案将迫使您在解决方案中的每个项目中添加MSBuild内容。
这只需要您在实际具有XAP / APPX文件输出的项目中输入它:
<PropertyGroup>
<FilesToXapDependsOn>$(FilesToXapDependsOn);AfterFilesToXapDependsOn</FilesToXapDependsOn>
</PropertyGroup>
<Target Name="AfterFilesToXapDependsOn">
<ItemGroup>
<FilteredPackagingOutputs Remove="@(FilteredPackagingOutputs)" Condition="'%(FilteredPackagingOutputs.OutputGroup)' == 'CopyLocalFilesOutputGroup' AND '%(FilteredPackagingOutputs.Extension)' == '.xml'" />
</ItemGroup>
</Target>
这有点像黑客,应该小心使用(现在还不确定这可能会带来什么影响),但现在似乎完美地完成了工作!