2014-09-11 8 views

risposta

2

Come hai taggato la tua domanda con , presumo tu abbia il problema su iOS. Fino a poco tempo fa, Xamarin.Studio non utilizzava xbuild (o msbuild) per creare il progetto, quindi venivano saltate altre destinazioni.

Partendo Xamarin.iOS 7.9 (o più realisticamente 8.0), il valore predefinito è invariato, ma si ha la possibilità di attivarlo dalle preferenze del progetto:

use MSBuild build engine

ignorare l'avviso "non supportato", ma so che non è supportato in caso di problemi.

Poi, a condizione che il nuget correttamente aggiunto una riga come

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

il bersaglio deve essere eseguito.

+0

La mia soluzione è costituita da un progetto PCL per i componenti condivisi, un progetto di iOS, e un progetto Android. I file che devono essere intrecciati si trovano nel progetto PCL. Quel progetto non ha un'opzione per selezionare un motore di compilazione. L'app per iOS ha questa opzione, sebbene il suo controllo provochi un errore di generazione che suggerisce che non è possibile importare Xamarin.MonoTouch.CSharp.targets. Eventuali raccomandazioni dato che è un progetto di libreria condivisa? –

+0

Guarda l'output della build, controlla se l'attività è stata eseguita –

+0

L'ho fatto numerose volte con varie modifiche alle opzioni del progetto. Non sembra mai essere eseguito. Ho ricontrollato che il build target sia importato nel file csproj, quindi sembra strutturalmente corretto. –

15

Ho avuto lo stesso problema e sono riuscito a capire che se si rimuove la build \ Microsoft.Bcl.Build.targets dal file csproj Fody viene eseguito normalmente.

Quindi provare e rimuovere questa linea.

<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

Non capisco perché, ma funziona. –

+0

Sì, ha funzionato di nuovo per me! – rid00z

+0

So che non è necessario Microsoft.Bcl.Build nei progetti Xamarin, ma ho bisogno di una spiegazione del perché Fody funzioni dopo aver rimosso questa direttiva di importazione. Non ha senso per me. –

2

C'è un errore nel file Fody.targets. Basta sostituire

Condition="Exists(@(IntermediateAssembly))" 

con

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

e dovrebbe funzionare di nuovo.

trovare il file nella .../projectfolder/packages/Fody2.x.x/build/netstandard1.4/Fody.targets

Problemi correlati