2014-12-05 14 views
23

Obiettivo: avviare un progetto ASP.NET MVC 5 su Mono tramite Xamarain Studio.MVC 5 on Mono: impossibile caricare il file o l'assembly 'System.Web.Entity' o una delle sue dipendenze

errore dopo server di partenza: Could not load file or assembly 'System.Web.Entity' or one of its dependencies.

enter image description here

Errore in Xamarin Studio:

enter image description here

Contesto: il progetto è stato creato in Visual Studio 2013, come un progetto predefinito web. La maggior parte della configurazione è pronta all'uso. Il codice può essere viewed here on GitHub. Ho gli ultimi e più grandi Mono e Xamarin Studio al momento della scrittura. .NET Entity Framework è una dipendenza risolta e non sono stati rilevati problemi di build in Xamarin Studio.

Come si avvia questo progetto? Come posso risolvere questa dipendenza?

+0

Avrete solo bisogno di una copia di tale dll (ottenere da Windows). – Jester

+4

C'è un motivo per cui questa DLL non è inclusa nel framework Mono? –

risposta

0

È EntityFramework.dll copiato nel cestino? In Visual Studio è possibile effettuare il seguente enter image description here

2

Sono stato in grado di aggirare questo problema ottenendo il file System.Web.Entity.dll dalla mia casella di Windows. Ho trovato il mio in C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\.

Una volta ho copiato che alla cartella bin del mio progetto sul mio Mac, e aggiornato il riferimento per includere un HintPath ...

<Reference Include="System.Web.Entity" > 
    <HintPath>..\bin\System.Web.Entity.dll</HintPath> 
</Reference> 

il progetto avrebbe costruito in Xamarin Studio. Mostrava ancora la X rossa accanto al riferimento (sì, anche se ho specificato che si trattava di una copia locale e ho aggiunto un HintPath), ma almeno poteva trovarlo.

Alla fine ho ricevuto un altro errore sull'impossibilità di caricare System.Drawing.BitmapSuffixInSameAssemblyAttribute, ma hey, piccoli progressi!

+0

questo assembly non dovrebbe venire in un pacchetto nuget o qualcosa del genere? – knocte

+0

Lo penserei, ma evidentemente no? Il ripristino Nuget di Xamarin Studio non ha avuto successo, anche se non ho mai avuto problemi a sviluppare il progetto che lo richiede in Visual Studio, probabilmente perché la DLL è dotata di .NET Framework installato su Windows. – jonnybot

+0

Creare un progetto in Visual Studio utilizzando il modello MVC ASP.NET. Dopo aver creato il progetto, andare alla cartella Riferimenti, fare clic con il tasto destro del mouse su "System.Web.Entity", selezionare Proprietà. In Proprietà, selezionare CopyLocal come True. Passare alla cartella bin del progetto, la DLL sarà lì; Ora basta copiarlo su Linux e fare ciò che è descritto nella risposta sopra –

0

non sarebbe meglio/più facile per voi solo per sostituire quella vecchia EntityFramework con il nuovo da NuGet, penso che risolverà la maggior parte dei nostri problemi con altri riferimenti

4

So che questo è un vecchio filo, ma mi sono imbattuto in questo mentre iniziavo a eseguire il porting su un progetto MVC da VS per Windows a VS per Mac. Ho trovato una soluzione migliore era quella di eliminare il riferimento a System.Web.Entity e aggiungere il pacchetto NuGet System.Web.Http.Common. Spero che sia d'aiuto.

Problemi correlati