2017-11-27 4 views
1

arbeite ich zur Zeit an einem Xamarin pcl Projekt in Visual Studio 2017 mit den Plattformen UWP und Android. Bis vor einem Monat ist die Erstellung des Projekts schnell, aber jedes Mal, wenn ich etwas ändere, dauert es etwa 100 Sekunden, bis es fertig ist.Warum Xamarin pcl Build dauert so lange

Meine Architektur: Ich habe ein PCL-Projekt mit UWP und Android.

Dieses Projekt hat 4 Bibliotheksprojekte als dlc's.

1 der libs hat eine andere lib als dlc.

Es spielt keine Rolle, wo meine Änderung ist, es dauert immer etwa 100 Sekunden, bevor es erstellt.

Antwort

2

Erstellen Sie Ihre Projekte mit MSBuild PerformanceSummary oder Diagnostic Level-Protokollierung und am Ende des Build-Protokolls erhalten Sie zwei Performance-Zusammenfassungen; Target und Task. Von dort können Sie auf konzentrieren wollen eigentlich die meiste Zeit nimmt ...

dh

Target Performance Summary: 
     ~~~~ 
     117 ms _ResolveLibraryProjectImports    1 calls 
     229 ms _CollectAdditionalResourceFiles   1 calls 
     271 ms _ResolveAssemblies       1 calls 
     360 ms _SetLatestTargetFrameworkVersion   1 calls 
     362 ms _CopyIntermediateAssemblies    1 calls 
     422 ms _CopyMdbFiles        1 calls 
     437 ms _CreateBaseApk        1 calls 
     441 ms _CreateAdditionalResourceCache    1 calls 
     518 ms _GenerateJavaStubs       1 calls 
     570 ms _LinkAssembliesNoShrink     1 calls 
     602 ms _UpdateAndroidResgen      1 calls 
     ~~~~ 

Task Performance Summary: 
     ~~~~ 
     359 ms ResolveSdks        1 calls 
     381 ms CreateItem        181 calls 
     437 ms CreateAdditionalLibraryResourceCache  1 calls 
     495 ms GenerateJavaStubs       1 calls 
     519 ms Copy          9 calls 
     567 ms LinkAssemblies        1 calls 
    1134 ms Csc          1 calls 
    1915 ms Aapt          3 calls 
    2097 ms Javac          1 calls 
    ~~~~ 

Re: https://developer.xamarin.com/guides/android/troubleshooting/troubleshooting/

+0

Dies ist die größte zwei sind, aber ich weiß nicht, ob das wenn reparierbar? 1> 71555 ms BuildNativePackage 1 Aufrufe 2> 70317 ms LoggerBasedExecTask 1 Aufrufe –

+0

@TiesTheunissen 'BuildNativePackage' ist, wenn Sie ein natives' appx'-Paket erstellen. Dies * normalerweise * ist CPU-gebunden (und Festplatten weniger gebunden, vor allem, wenn Sie eine SSD haben), da es die Compiler-Tool-Kette zu AOT Ihre IL auf native x86/Arm-Code aufruft. Sie können den Task-Manager während eines BuildAlls beobachten, um festzustellen, ob es cpu- oder festplattengebunden ist ... aber Sie können nicht viel tun, wenn nicht neue Hardware (CPU und/oder ein SSD-Laufwerk) in Ihrer Zukunft ist. – SushiHangover

+0

Es nutzt in der Tat die CPU. Die Nutzung der CPU beträgt jedoch durchschnittlich 40%. Ich habe eine Intel (R) Core (TM) i5-3470 CPU @ 3.20 Ghz und eine SSD. Also, wenn die CPU bei 100% baut, macht es Sinn, aber wenn die Durchschnitt 40% ist, ist es nicht wright? –

Verwandte Themen