8

Visual Studio で Windows Phone 8 アプリを作成し、nuget から提供された XML ドキュメント ファイルまたは手動でライブラリを参照すると、Visual Studio はそれらの XML ファイルを出力 XAP にも自動的にパックします。

私たちの場合、Visual Studio のこの奇妙な動作により、XAP サイズがほぼ 2 倍に増加します。(合計 8​​Mb の xml ドキュメントがあります。)

WP7 アプリ プロジェクトでは、このような問題はありません。

Visual Studio が不要なドキュメント ファイルをパックしないようにすることで、xap ファイルのサイズを小さくするにはどうすればよいですか?

2013 年 2 月 14 日更新:

問題を再現する手順:

  1. Visual Studio を使用して Windows Phone 8 アプリ プロジェクトを作成する
  2. NuGet パッケージ マネージャーを使用して「Reactive Extensions – Main Library」を参照する
  3. ビルド ソリューション
  4. Bin フォルダーに移動し、XAP アーカイブを展開します。

「System.Reactive.Core.xml」のような不要な XML doc ファイルがたくさんあります</p>

これはセキュリティ上の問題だと思います。プロジェクト (またはソリューション内の他のプロジェクト) で XML ドキュメントの生成を有効にすると、それらの XML ドキュメントも XAP にパックされるためです。これは、誰かがコードへのコメントを読む可能性がある場合に非常に望ましくありません。

4

1 に答える 1

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>

これはちょっとしたハックであり、慎重に使用する必要があります (これが実際にどのような影響を与えるかは現時点ではわかりません) が、今のところ完璧に機能しているようです!

于 2013-02-14T13:56:27.257 に答える