2013-02-13 20 views
8

Wenn Sie Windows Phone 8 App in Visual Studio erstellen und auf alle Bibliotheken mit XML-Dokumentationsdateien aus nuget oder manuell verweisen, packt Visual Studio diese XML-Dateien automatisch in Ausgabe-XAP .Visual Studio verpackt in WP8 XAP unnötige XML-Dokumentendateien

In unserem Fall erhöht dieses seltsame Verhalten von Visual Studio XAP Größe fast zweimal. (Wir haben 8 MB xml Dokumente insgesamt.)

Es gibt kein solches Problem für WP7 App-Projekte.

Wie kann die Größe der xap-Datei reduziert werden, indem Visual Studio gezwungen wird, keine unnötigen Dokumentationsdateien zu packen?

-Update 14.02.2013:

Schritte, das Problem zu reproduzieren:

  1. Erstellen von Windows Phone 8 App-Projekt mit Visual Studio
  2. Reference „Reactive Extensions - Hauptbibliothek“ mit NuGet-Paketmanager
  3. Erstellen Sie Lösung
  4. Gehen Sie zum Ordner Bin und entpacken XAP-Archiv

Sie werden dort viele unnötige XML-Dokument-Dateien wie „System.Reactive.Core.xml“

Ich glaube, dieses Sicherheitsproblem finden ist, denn wenn man XML-Dokument-Generierung für Ihr Projekt aktivieren (oder andere Projekte in Lösung), diese XML-Dokumente werden ebenfalls in XAP gepackt - dies ist äußerst unerwünscht, wenn jemand Kommentare zu Ihrem Code lesen kann.

+0

Können Sie angeben, mit welchen NuGet-Paketen dies geschieht? –

+0

Reaktive Erweiterungen - Main Lib, zum Beispiel. –

+0

Auch wenn es daran liegt, dass es etwas mit den Unterschieden zwischen den MSBuild-Skripten für WP7 und WP8 zu tun hat, werde ich versuchen, das besser zu graben, sobald ich die Chance dazu habe! –

Antwort

6

auf 20/02/2013 Aktualisiert

Als @ A-Schüler in den Kommentaren darauf hingewiesen, meine bisherige Lösung würde Sie zwingen, die MSBuild Sachen in jedes Projekt in einer Lösung hinzuzufügen.

Dieses nur erfordert, dass Sie es zu den Projekten geben, die tatsächlich eine XAP/APPX Datei ausgegeben haben:

<PropertyGroup> 
    <FilesToXapDependsOn>$(FilesToXapDependsOn);AfterFilesToXapDependsOn</FilesToXapDependsOn> 
</PropertyGroup> 
<Target Name="AfterFilesToXapDependsOn"> 
    <ItemGroup> 
    <FilteredPackagingOutputs Remove="@(FilteredPackagingOutputs)" Condition="'%(FilteredPackagingOutputs.OutputGroup)' == 'CopyLocalFilesOutputGroup' AND '%(FilteredPackagingOutputs.Extension)' == '.xml'" /> 
    </ItemGroup> 
</Target> 

Es ist ein bisschen wie ein Hack und sollte sorgfältig (nicht sicher, gerade jetzt von welchen Implikationen verwendet werden Dies könnte tatsächlich haben), aber scheint jetzt die Arbeit perfekt zu machen!

+1

Danke für die Antwort. Ich habe Ihre Lösung getestet und festgestellt, dass XML-doc-Dateien aus dem Ausgabeverzeichnis entfernt werden, aber immer noch in XAP gepackt :( –

+0

Derzeit scheint die obige Lösung sowohl in WP8 als auch in Win8-Anwendungen gut zu funktionieren, können Sie ein Beispielprojekt bereitstellen von Ihnen für mich zu testen? Verwenden Sie Visual Studio Express? –

+0

Bitte stellen Sie sicher, dass Sie tatsächlich eine Clean + Build (oder Rebuild) der Lösung! Wenn nichts anderes funktioniert, kontaktieren Sie mich direkt (Kontakte in meinem Profil) –