2013-01-17 10 views
6

Sto costruendo una soluzione che contiene diverse soluzioni. Tutti tranne uno di loro costruiscono senza problemi. Il problematico emette il seguente messaggio:Errore di generazione sgen.exe "Impossibile caricare uno o più dei tipi richiesti"

Errore 2 Impossibile caricare uno o più dei tipi richiesti. Recupera la proprietà LoaderExceptions per ulteriori informazioni . J: \ MyPlugins \ MyPlugin1 \ SGEN MyPlugin1

ho acceso l'output dettagliato in Visual Studio e ho avuto la seguente: C: \ Program Files (x86) \ Microsoft SDK \ Windows \ V8.0a \ bin \ NETFX 4.0 Tools \ sgen.exe/assembly:

Ho controllato l'output con FusionLog e tutto è stato caricato correttamente. Questa risultò essere un'aringa rossa. Ho deciso di eseguire nuovamente la build con la verbosità visualizzata. Ho ottenuto il seguente:

Microsoft (R) Utilità di supporto serializzazione XML [Microsoft (R) .NET Framework , Versione 4.0.30319.17929] Copyright (C) Microsoft Corporation . Tutti i diritti riservati. Se desideri ulteriore aiuto, scrivi per favore "sgen /?". SGEN: errore: impossibile caricare uno o più dei tipi richiesti . Recupera la proprietà LoaderExceptions per ulteriori informazioni . Il comando è terminato con il codice 1. Esegui l'attività di esecuzione "SGen" - FAILED.

C: \ Program Files (x86) \ Microsoft SDK \ Windows \ V8.0a \ bin \ netfx 4,0 Tools \ sgen.exe /assembly:":\MyPlugins\MyPlugin1.dll"/ proxytypes /di riferimento: "J: \ MyPlugins \ MyPlugin1 \ packages \ FluentValidation.3.4.6.0 \ lib \ Net40 \ FluentValidation.dll" /riferimento: "C: \ Programmi (x86) \ Riferimento Assiemi \ Microsoft \ Framework.NETFramework \ v4. 0 \ mscorlib.dll " /reference:"JM\Plugins\MyPlugin1\Libraries\Core\bin\Release\Core.dll" /riferimento: "J: \ MyPlugins \ MyPlugin1 \ Libraries \ Services \ bin \ Release \ Services.dll " /reference:"J:\MyPlugins\MyPlugin1\Presentation\Web.Framework\bin\Release\Web.Framework.dll" /riferimento: "C: \ Programmi (x86) \ Re ference Assemblee \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Core.dll " /riferimento:" C: \ Programmi (x86) \ Riferimento Assiemi \ Microsoft \ Framework.NETFramework \ v4.0 \ System. Dati.dll " /riferimento:" C: \ Programmi (x86) \ Riferimento Assiemi \ Microsoft \ Framework.NETFramework \ v4.0 \ System.dll " /riferimento:" C: \ Programmi (x86) \ Riferimento Assiemi \ Microsoft \ Framework.NETFramework \ v4.0 \ System.EnterpriseServices.dll " /riferimento:" C: \ Programmi (x86) \ Riferimento Assiemi \ Microsoft \ Framework.NETFramework \ v4.0 \ System. Web.dll " /riferimento:" C: \ Programmi (x86) \ Microsoft ASP.NET \ ASP.NET MVC 4 \ Assiemi \ System.Web.Mvc.dll "/ riferimento:" C: \ Program F iles (x86) \ Reference Assiemi \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Web.Services.dll " /riferimento:" C: \ Programmi (x86) \ Riferimento Assiemi \ Microsoft \ Framework. NETFramework \ v4.0 \ System.Xml.dll"

Qual è la causa di questo errore e come posso risolvere il problema a corto di spegnere SGEN? Cordiali saluti, non ho scritto il codice.

+0

Hai mai trovato una risposta a questo? Ho lo stesso problema – csharpforevermore

+0

Vedere la mia risposta. Grazie per avermi ricordato. –

risposta

0

La soluzione è semplice ma difficile da trovare. È necessario eliminare la cartella precompilata asp.net. Poiché i plugin sono referenziati dinamicamente, .NET non può aggiornare le sue DLL come farebbe con gli altri componenti.

12

Una grande punta che ha lavorato per me, preso da qui: http://hashtagfail.com/post/5255977780/sgen-loaderexceptions-error

Il motivo per cui questo accade è che in costruisce uscita, Visual Studio tentativi di generare un assembly di serializzazione contenente i tipi di soluzione , per migliorare le prestazioni di serializzazione XmlSerializer, se si sceglie di serializzare i tipi. Questo può essere disabilitato da andando alla scheda Build delle proprietà del progetto e impostando "Genera assembly di serializzazione " su "Off".

0

Ho avuto lo stesso problema ed era un cattivo riferimento nel progetto. Dopo aver eliminato la DLL dal GAC, funzionava correttamente. È possibile trovare il problema DLL con Fusion Log. Maggiori informazioni here

Problemi correlati