2013-01-17 10 views
6

Buduję rozwiązanie, które zawiera kilka rozwiązań. Wszystkie, z wyjątkiem jednego, budują bez żadnych problemów. Problematyczne urządzenie wysyła następującą wiadomość:sgen.exe błąd kompilacji "Nie można załadować jednego lub więcej żądanych typów"

Błąd 2 Nie można załadować jednego lub więcej żądanych typów. Pobierz właściwość LoaderExceptions, aby uzyskać więcej informacji: . J: \ MyPlugins \ MyPlugin1 \ SGEN MyPlugin1

Włączyłem gadatliwym wyjścia w Visual Studio i dostałem następujący: C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools \ sgen.exe/assembly:

Sprawdziłem dane wyjściowe za pomocą FusionLog i wszystko załadowane poprawnie. To okazało się czerwonym śledziem. Postanowiłem ponownie uruchomić kompilację z podniesioną gadatliwością. Mam następujący:

Microsoft (R) narzędziowy wspornik serializacji XML [Microsoft (R) NET ramy, wersja 4.0.30319.17929] Copyright (c) Microsoft Corporation. Wszelkie prawa zastrzeżone. Jeśli potrzebujesz dodatkowej pomocy, wpisz wpisz "sgen /?". SGEN: error: Nie można wczytać jednego lub więcej z żądanych typów. Pobierz właściwość LoaderExceptions, aby uzyskać więcej informacji: . Polecenie zakończyło się kodem 1. Wykonano zadanie "SGen" - FAILED.

C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v8.0A \ bin \ NETFX 4,0 Tools \ sgen.exe /assembly:":\MyPlugins\MyPlugin1.dll”/ proxytypes /referencje: "J: \ MyPlugins \ MyPlugin1 \ packages \ FluentValidation.3.4.6.0 \ lib \ Net40 \ FluentValidation.dll" /reference: "C: \ Program Files (x86) \ Reference Złożenia \ Microsoft \ Framework.NETFramework \ v4. 0 \ mscorlib.dll " /reference:"J:\MyPlugins\MyPlugin1\Libraries\Core\bin\Release\Core.dll" /reference: "J: \ MyPlugins \ MyPlugin1 \ Libraries \ Services \ bin \ Release \ Services.dll " /reference:"J:\MyPlugins\MyPlugin1\Presentation\Web.Framework\bin\Release\Web.Framework.dll" /odnośnik: "C: \ Program Files (x86) \ Re ference Złożenia \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Core.dll " /reference:" C: \ Program Files (x86) \ Reference Złożenia \ Microsoft \ Framework.NETFramework \ v4.0 \ System. Data.dll " /reference:" C: \ Program Files (x86) \ Reference Złożenia \ Microsoft \ Framework.NETFramework \ v4.0 \ System.dll " /odnośnik:" C: \ Program Files (x86) \ Odniesienia Złożenia \ Microsoft \ Framework.NETFramework \ v4.0 \ System.EnterpriseServices.dll " /reference:" C: \ Program Files (x86) \ Reference Złożenia \ Microsoft \ Framework.NETFramework \ v4.0 \ System. Web.dll " /reference:" C: \ Program Files (x86) \ Microsoft ASP.NET \ ASP.NET MVC 4 \ Assemblies \ System.Web.Mvc.dll "/ reference:" C: \ Program F iles (x86) \ Numer referencyjny Złożenia \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Web.Services.dll " /odnośnik:" C: \ Program Files (x86) \ Numer referencyjny Złożenia \ Microsoft \ Framework. NETFramework \ v4.0 \ System.Xml.dll "

Co jest przyczyną tego błędu i jak mogę go naprawić, nie wyłączając SGEN? FYI, nie napisałem kodu.

+0

Czy kiedykolwiek znalazłeś odpowiedź na to pytanie? Mam ten sam problem. – csharpforevermore

+0

Zobacz moją odpowiedź. Dzięki za przypomnienie. –

Odpowiedz

0

Rozwiązanie jest proste, ale trudne do znalezienia. Musisz usunąć wstępnie skompilowany folder asp.net. Ponieważ wtyczki są dynamicznie przywoływane, system .NET nie może aktualizować biblioteki DLL, tak jak inne komponenty.

12

Wielki wskazówka, że ​​pracował dla mnie, wzięty stąd: http://hashtagfail.com/post/5255977780/sgen-loaderexceptions-error

Powodem takiej sytuacji jest to, że buduje Release, Visual Studio próby generowania zespół serializacji zawierającą typy w rozwiązania , aby poprawić wydajność serializacji XmlSerializer, , jeśli wybierzesz serializację typów. Można to wyłączyć, przechodząc na kartę Build właściwości projektu i ustawiając "Generate assembly" na "Off".

0

Miałem ten sam problem i było to złe odniesienie w projekcie. Po usunięciu biblioteki DLL z GAC działało dobrze. Możesz znaleźć problemową bibliotekę DLL za pomocą Fusion Log. Więcej informacji: here

Powiązane problemy