.net - Visual Studio 将不必要的 XML doc 文件打包到 WP8 XAP 中

标签 .net visual-studio visual-studio-2012 windows-phone-8 xap

如果您在 Visual Studio 中创建 Windows Phone 8 应用程序,并使用 nuget 或手动提供的 XML 文档文件引用任何库,Visual Studio 也会自动将这些 XML 文件打包到输出 XAP 中。

在我们的例子中,Visual Studio 的这种奇怪行为使 XAP 大小几乎增加了一倍。 (我们总共有 8Mb 的 xml 文档。)

WP7应用项目不存在这样的问题。

如何通过强制 Visual Studio 不打包不必要的文档文件来减小 xap 文件的大小?

2013 年 2 月 14 日更新:

重现问题的步骤:

  1. 使用 Visual Studio 创建 Windows Phone 8 应用项目
  2. 使用 NuGet 包管理器引用“响应式(Reactive)扩展 - 主库”
  3. 构建解决方案
  4. 转到 Bin 文件夹并解压 XAP 存档

你会发现有很多不必要的XML文档文件,比如“System.Reactive.Core.xml”

我认为这是安全问题,因为如果您为您的项目(或解决方案中的其他项目)启用 XML 文档生成,这些 XML 文档也将被打包到 XAP 中 – 当任何人可能阅读您的评论时,这是非常不希望的代码。

最佳答案

更新于 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>

这有点像黑客,应该谨慎使用(现在不确定这实际上可能会产生什么影响),但目前看来可以完美完成这项工作!

关于.net - Visual Studio 将不必要的 XML doc 文件打包到 WP8 XAP 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14849374/

相关文章:

visual-studio - Visual Studio 中的 WIX UI 安装程序项目,现在管理更新?

c# - 如何在 IntelliSense 中对 Visual Studio 中的函数进行注释?

c++ - 为什么我不能在 visual studio 2012 的调试配置中将平台设置为 x64

visual-studio-2012 - Visual Studio 2012 : Can't add new item to project

java - 我们可以使用 Java selenium 代码进行 .net Web 应用程序测试吗?

c# - DependencyProperty 绑定(bind)问题

c# - 在 .net 中以编程方式突出显示 PDF - 是否有任何 API 和库来生成偏移文件或是否有更好的方法?

.net - 使用 xcopy ODP.NET 和即时客户端的 ORA-28547

c# - 使用 .NET 编译器以 ARM 架构为目标

c# - Visual studio 2012 - 代码适合窗口断线