Mam dziwny problem z VS2010. Używamy TFS do budowania naszych bibliotek dll API i używaliśmy ich do odwoływania się w naszych projektach przy użyciu mapowanego dysku sieciowego, który był w pełni zaufany. Pracowaliśmy tak od co najmniej dwóch lat i wszystko działało idealnie.
Dzisiaj przekonwertowałem aplikację internetową na vs2010 i kiedy kompiluję ją w wersji Release, otrzymuję:
SGEN: błąd: nie można załadować pliku lub zestawu „file: /// L: \ Api \ Release API_20100521.1 \ Release \ CS.API.Exceptions.dll” lub jednej z jego zależności. Operacja nie jest obsługiwana. (Wyjątek od HRESULT: 0x80131515)
Dziwne jest to, że działa, gdy znajduje się w profilu debugowania ...
Próbowałem dodać
<runtime>
<loadFromRemoteSources enabled="true" />
</runtime>
do app.config i nadal nie ma szczęścia (patrz http://social.msdn.microsoft.com/Forums/en/msbuild/thread/d12f6301-85bf-4b9e-8e34-a06398a60df0 i http://msdn.microsoft.com/ en-us / library / dd409252 (VS.100) .aspx )
Jestem prawie pewien, że ten problem pochodzi z Visual Studio lub MSBuild, ponieważ nasz kod nie będzie działał z udziału sieciowego w wersji produkcyjnej, ponieważ wszystkie pliki DLL, do których się odwołuje, są kopiowane do folderu bin.
Jeśli ktoś ma rozwiązanie (lub po prostu pomysł na ścieżkę wyszukiwania) to daj mi znać!
Edycja: Okazuje się, że działał w trybie debugowania, ponieważ generowanie zestawów serializacji zostało wyłączone. Jak mówi tytuł, to naprawdę problem z SGEN, ponieważ to narzędzie mówi, że ścieżka nie jest zaufana ...
Właśnie miałem ten sam / podobny problem na serwerze kompilacji TFS, gdzie kompilacja odwoływała się do bibliotek dll z udziału sieciowego.
Problem polega na tym, że model zasad bezpieczeństwa CLR v4 zmienił się od czasu poprzednich wersji i nie są zestawami piaskownicy, jak poprzednio.
Aby rozwiązać problem, po prostu znajdź lokalizację sgen.exe i utwórz plik sgen.exe.config w tym samym folderze z następującą zawartością:
sgen.exe zwykle znajduje się pod adresem
Możesz przeczytać o niektórych zmianach dotyczących zasad CAS w .NET 4.0 w tym wpisie na blogu: Link
źródło
Miałem ten sam problem i zmiana konfiguracji nie zadziałała. Zadziałało to tylko wtedy, gdy we właściwościach projektu ustawiłem opcję Generuj zestaw serializacji na wyłączone.
źródło
Wystąpił ten sam błąd i okazało się, że moja biblioteka DLL jest „zablokowana”. Otwórz bibliotekę DLL w eksploratorze, kliknij prawym przyciskiem myszy -> właściwości -> naciśnij „Odblokuj”.
http://cantgrokwontgrok.blogspot.com/2009/10/visual-studio-unknown-build-error.html
źródło
Miałem dokładnie ten sam problem i naprawiłem go, dodając sgen.exe.config w C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools
z tą prostą konfiguracją, jak powiedzieli inni
źródło
Dla tych z Was, którzy używają 64-bitowej wersji usługi kompilacji TFS, musiałem utworzyć plik konfiguracyjny w następującej ścieżce:
A zawartość pliku:
źródło
Miałem ten sam problem, załadowałem montaż w GAC i działałem
źródło
Dodanie poniższego fragmentu do pliku app.config zadziałało w moim przypadku. Używam systemu Windows XP z dodatkiem Service Pack 1 dla VS2010.
źródło
Podobnie jak informacja do Twojej wiadomości, jeśli używasz systemu Windows 7, plik sgen.exe można znaleźć pod adresem:
C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools
Musiałem utworzyć plik sgen.exe.config i umieścić go tam, a następnie problem zniknął.
źródło
Ani to,
unblock
ani nieconfig
działały dla mnie. Na czym polegała ta wskazówkacaspol
. PobiegłemByłem gotowy do pracy, nawet restart VisualStudio nie był wymagany.
źródło
Pojawił się podobny problem iw końcu udało mi się go uporać, usuwając plik license.licx w folderze Właściwości rozwiązania.
źródło
Tak jak ja, Unblock nie był rozwiązaniem, ponieważ Unblock nie pojawia się we właściwościach mojego pliku dll. Ciągle szukałem i zakończyło się zamknięciem pliku rozwiązania i ponownym otwarciem przy użyciu lokalnej kopii C: zamiast sieciowej ścieżki UNC do pliku sln projektu. Był w stanie opublikować po przejściu tej trasy.
źródło
W moim przypadku kilka bibliotek dll zostało zablokowanych.
Aby odblokować wszystkie pliki w folderze, użyłem powłoki Power z następującym poleceniem
źródło