2014-09-11 8 views
9

Ich versuche Xamarin Studio zu verwenden, PropertyChanged.Fody zu verwenden. Ich habe Fody über NuGet installiert, das Fody.targets in seinen NuGet-Paketordner stellt. Aber wenn ich baue, zeigt die Ausgabe nie an, dass das Ziel ausgeführt wird.Xamarin Studio Bauziele? Versuchen Sie, Fody zum Laufen zu bringen?

Wie kann ich Xamarin Studio mitteilen, das Fody-Build-Ziel zu verwenden?

Danke!

Antwort

2

Da Sie Ihre Frage mit markiert haben, nehme ich an, dass Sie das Problem auf iOS haben. Bis vor kurzem verwendete Xamarin.Studio nicht xbuild (oder msbuild), um das Projekt zu erstellen, und dann wurden zusätzliche Ziele übersprungen.

Beginnend mit Xamarin.iOS 7.9 (oder realistischen 8.0), ist die Standardeinstellung unverändert, aber Sie haben die Möglichkeit, es aus den Projekteinstellungen zu aktivieren:

use MSBuild build engine

die „unsupported“ Warnung ignorieren, aber wissen, dass Es ist nicht unterstützt, wenn Sie ein Problem haben.

dann vorgesehen, dass die nuget korrekt eine Zeile wie

<Import Project="PATH_TO/Fody.targets" /> 

das Ziel ausgeführt werden soll, zugegeben.

+0

Meine Lösung, einem iOS-Projekt und ein Android-Projekt für die gemeinsam genutzten Komponenten eines PCL-Projekt besteht. Die Dateien, die das Weben benötigen, befinden sich im PCL-Projekt. Dieses Projekt verfügt nicht über eine Option zum Auswählen einer Build-Engine. Die iOS-App hat diese Option, obwohl die Überprüfung einen Buildfehler verursacht, der darauf hindeutet, dass Xamarin.MonoTouch.CSharp.targets nicht importiert werden kann. Alle Empfehlungen gegeben, es ist eine gemeinsame Bibliothek Projekt? –

+0

Schauen Sie sich Ihre Build-Ausgabe an, prüfen Sie, ob die Aufgabe ausgeführt wird –

+0

Ich habe das schon mehrfach mit verschiedenen Projektoptionen gemacht. Es scheint nie auszuführen. Ich habe überprüft, dass das Build-Ziel in der csproj-Datei importiert wird, so dass es strukturell korrekt aussieht. –

15

Ich hatte das gleiche Problem und es geschafft, herauszufinden, dass, wenn Sie die Build \ Microsoft.Bcl.Build.targets aus der csproj-Datei entfernen Fody wie üblich läuft.

Also versuchen Sie, diese Zeile zu entfernen.

<Import Project="..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" /> 
+0

Ich verstehe nicht warum, aber es funktioniert. –

+0

Ja, hat wieder für mich gearbeitet! – rid00z

+0

Ich weiß, dass Sie Microsoft.Bcl.Build nicht in Xamarin-Projekten benötigen, aber ich brauche eine Erklärung, warum Fody funktioniert, nachdem diese Import-Direktive entfernt wurde. Es ergibt keinen Sinn für mich. –

2

In der Datei Fody.targets ist ein Fehler aufgetreten. Ersetzen Sie einfach

Condition="Exists(@(IntermediateAssembly))" 

mit

Condition="Exists('@(IntermediateAssembly)')" 

und es sollte wieder funktionieren.

Suchen Sie die Datei in .../projectfolder/packages/Fody2.x.x/build/netstandard1.4/Fody.targets

Verwandte Themen