Mam projekt, w którym chciałbym korzystać z niektórych funkcji .NET 4.0, ale podstawowym wymaganiem jest to, że mogę korzystać ze środowiska System.Data.SQLite, które jest kompilowane z wersją 2.X. Widzę wzmiankę o tym, że jest to możliwe, takie jak przyjęta tutaj odpowiedź, ale nie wiem, jak to osiągnąć.
Gdy próbuję uruchomić mój projekt 4.0, odnosząc się do zestawu 2.X, otrzymuję:
Zespół trybu mieszanego jest budowany w oparciu o wersję „v2.0.50727” środowiska wykonawczego i nie można go załadować do środowiska wykonawczego 4.0 bez dodatkowych informacji konfiguracyjnych.
Jaka „dodatkowa konfiguracja” jest konieczna?
SGEN
, wówczas poprawka musi znajdować się w plikusgen.exe.config
oboksgen.exe
. Na przykład dla VS 2015 utwórzC:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\sgen.exe.config
. Źródło: SGEN Tryb mieszany Minimalna zawartość pliku:<configuration><startup useLegacyV2RuntimeActivationPolicy="true"/></configuration>
Odpowiedzi:
Aby użyć zestawu trybu mieszanego CLR 2.0 , musisz zmodyfikować plik App.Config, aby zawierał:
Kluczem jest
useLegacyV2RuntimeActivationPolicy
flaga. Powoduje to, że CLR używa najnowszej wersji (4.0) do załadowania zestawu trybu mieszanego. Bez tego nie będzie działać.Zauważ, że ma to znaczenie tylko dla zestawów trybu mieszanego (C ++ / CLI). Można załadować wszystkie zarządzane zestawy CLR 2 bez określania tego w
app.config
.źródło
Ten post na forum w .NET Framework Developer Center. Może zapewnić pewien wgląd.
(Dodaj do pliku konfiguracyjnego aplikacji.)
źródło
W zależności od wersji struktury, na którą celujesz, możesz zajrzeć tutaj, aby uzyskać poprawny ciąg:
http://msdn.microsoft.com/en-us/library/ee517334.aspx
Zmarnowałem godziny, próbując dowiedzieć się, dlaczego mój klient docelowy .Net 4.0 wymagał pełnej wersji. Użyłem tego na końcu:
źródło
Po ustawieniu pliku app.config Visual Studio wygeneruje kopię w folderze bin o nazwie App.exe.config . Skopiuj to do katalogu aplikacji podczas wdrażania. Brzmi oczywisto, ale zaskakująco wielu ludzi tęskni za tym krokiem. Programiści WinForms nie są wykorzystywani do konfigurowania plików :).
źródło
Używanie zestawów 2.0 i 4.0 razem nie jest całkiem proste.
ORDER obsługiwanych deklaracji ramowych w app.config faktycznie wpływa na wyjątek zgłaszanego trybu mieszanego. Jeśli zmienisz kolejność deklaracji, pojawi się błąd trybu mieszanego. To jest cel tej odpowiedzi.
Jeśli więc pojawia się błąd w aplikacji Windows Forms, spróbuj tego, głównie aplikacji Windows Forms.
Lub jeśli projekt nie jest Windows Form. W projekcie sieciowym dodaj to do pliku web.config.
źródło
Był w stanie rozwiązać problem poprzez dodanie elementu „startup” z zestawem atrybutów „useLegacyV2RuntimeActivationPolicy” .
Musiał jednak umieścić go jako pierwszy element podrzędny tagu konfiguracji w App.config, aby zadziałał .
źródło
version="v2.0"
?Powyższe nie działało dla mnie (pracuję nad aplikacją internetową) - ale to ...
Edytuj plik sgen.exe.config w folderze (najpierw musiałem go utworzyć); C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Narzędzia (istnieje również jeden w folderze v7.0, ale nie musiałem go zmieniać, używam VS2012)
Treść XML powinna wyglądać tak (to samo w poprzednich odpowiedziach)
źródło
Jeśli pracujesz w usłudze sieci Web, a zestaw v2.0 jest zależnością załadowaną przez WcfSvcHost.exe , musisz dołączyć
w pliku .. \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ WcfSvcHost.exe.config
W ten sposób Visual Studio będzie w stanie wysyłać odpowiednie informacje za pośrednictwem modułu ładującego w czasie wykonywania.
źródło
Natknąłem się na ten problem, gdy zmieniliśmy na Visual Studio 2015 . Żadna z powyższych odpowiedzi nie działała dla nas. W końcu działamy, dodając następujący plik konfiguracyjny do WSZYSTKICH plików wykonywalnych sgen.exe na komputerze
Szczególnie w tej lokalizacji, nawet gdy celowaliśmy w .NET 4.0:
C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.6 Narzędzia
źródło
Użyłem tej konfiguracji:
Pracował dla mnie
źródło
Miałem ten problem podczas aktualizacji do Visual Studio 2015 i żadne z opublikowanych tutaj rozwiązań nie miało znaczenia, chociaż konfiguracja jest odpowiednia, lokalizacja zmiany nie jest. Rozwiązałem ten problem, dodając tę konfigurację:
Do: C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ TE.ProcessHost.Managed.exe.config
Następnie ponownie uruchomiłem Visual Studio.
źródło
Znalazłem sposób na obejście tego po 3-4 godzinach googlingu. Dodałem następujące
Jeśli to nie rozwiąże problemu, to -> W referencjach projektu,
Right Click on DLL
gdzie pojawia się błąd ->Select Properties
->Check the Run-time Version
-> Jeśli tak, tov2.0.50727
znamy problem. Problemem jest: - masz2.0 Version of respective DLL.
Rozwiązanie: - Możeszdelete the respective DLL
z referencji projektu, a następniedownload the latest version of DLL's
z odpowiedniej strony internetowej i dodać referencję referencji DLL najnowszej wersji, to zadziała.źródło
Wystąpił ten sam błąd i spędziłem wieczność na dodawaniu sugerowanych instrukcji uruchamiania do różnych plików konfiguracyjnych w moim rozwiązaniu, próbując wyodrębnić niezgodność środowiska. Nic nie działało. Dodałem również informacje o starcie do moich schematów XML . To też nie pomogło. Patrząc na rzeczywisty plik, który był przyczyną problemu (który powiedziałby tylko, że został „przeniesiony lub usunięty”), okazało się, że tak naprawdę był to Kompilator licencji (LC).
Usunięcie nieuczciwego pliku license.licx rozwiązało problem.
źródło
Napotkałem podobny problem podczas migracji części kodu z VS 2008 do VS 2010. Wprowadzenie zmian w pliku App.config rozwiązało problem.
źródło
Dodaj w tym miejscu C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools \ x64 Nazwa pliku: sgen.exe.config (Jeśli nie możesz znaleźć tego pliku, utwórz go i dodaj)
W ten sposób rozwiązano problem
źródło
Używam
Działa, ale tuż przed de
</configuration>
tag, w przeciwnym razie tag startowy nie działa poprawnieźródło
Również miałem ten problem z biblioteką klas, jeśli ktoś ma problem z biblioteką klas dodaną do głównej aplikacji. Poprostu dodaj
do głównej aplikacji, którą następnie wybierze biblioteka klas.
źródło