Jaka "dodatkowa konfiguracja" jest konieczna do odniesienia a.NET 2.0 montaż w trybie mieszanym a.NET projekt 4.0?

Mam projekt, w którym chciałbym korzystać z niektórych funkcji. NET 4.0, ale podstawowym wymogiem jest to, że mogę korzystać z systemu.Data.Framework SQLite, który jest kompilowany z 2.X. widzę wzmiankę o tym, że jest to możliwe, np. akceptowana odpowiedź tutaj, ale nie widzę, jak to osiągnąć.

Kiedy tylko próbuję uruchomić mój projekt 4.0, odwołując się do 2.X assembly I get:

Montaż w trybie mieszanym jest zbudowany na podstawie wersji "v2.0.50727" runtime i nie może być załadowany w trybie runtime 4.0 bez dodatkowych informacje o konfiguracji.

Jaka" dodatkowa konfiguracja " jest konieczna?

Author: Community, 2010-03-16

17 answers

Aby korzystać z CLR 2.0 mixed mode assembly, musisz zmodyfikować swoją aplikację.Plik konfiguracyjny do włączenia:

<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>

Kluczem jest znacznik useLegacyV2RuntimeActivationPolicy. Powoduje to, że CLR używa najnowszej wersji (4.0) do ładowania zespołu w trybie mieszanym. Bez tego nie zadziała.

Zauważ, że ma to znaczenie tylko dla zespołów w trybie mieszanym (C++ / CLI). Można załadować wszystkie zarządzane zespoły CLR 2 bez określania tego w app.config.

 691
Author: Reed Copsey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-24 13:22:39

Ten post na forum Na. NET Framework Developer Center. To może dać pewien wgląd.

(Dodaj do pliku konfiguracyjnego aplikacji.)

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>
 36
Author: JasCav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-16 15:30:43

W zależności od wersji frameworka, którą kierujesz, możesz chcieć zajrzeć tutaj, aby uzyskać poprawny ciąg znaków:

Http://msdn.microsoft.com/en-us/library/ee517334.aspx

Zmarnowałem godziny, próbując dowiedzieć się, dlaczego mój klient. Net 4.0 wymagał pełnej wersji. Użyłem tego w końcu:

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0.30319" 
               sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>
 14
Author: Anthony Wieser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-08 10:52:08

Po ustawieniu aplikacji .plik config , visual studio wygeneruje kopię w folderze bin o nazwie App.exe.config . Skopiuj to do katalogu aplikacji podczas wdrażania. Brzmi oczywiste, ale zaskakująco wiele osób tęskni za tym krokiem. Programiści WinForms nie służą do konfiguracji plików :).

 11
Author: Raheel Khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-11 14:14:27

Używanie zestawów 2.0 i 4.0 razem nie jest całkiem proste.

Kolejność wspieranych deklaracji ramowych w aplikacji.config faktycznie mają wpływ na wyjątek trybu mieszanego jest wyrzucany. Jeśli odwrócisz kolejność deklaracji, otrzymasz błąd trybu mieszanego. Taki jest cel tej odpowiedzi.

Więc Jeśli pojawi się błąd w aplikacji Windows Forms, spróbuj tego, głównie Aplikacje Windows Forms.

  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>
    <supportedRuntime version="v2.0.50727"></supportedRuntime>
  </startup>

Lub jeśli projekt nie jest formularzem Windows. W projekcie www dodaj to do sieci.plik konfiguracyjny.

  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    <supportedRuntime version="v2.0.50727"></supportedRuntime>
  </startup>
 8
Author: Wiser Web,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-01 21:48:15

Był w stanie rozwiązać problem, dodając "startup" element z "useLegacyV2RuntimeActivationPolicy" zestaw atrybutów.

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    <supportedRuntime version="v2.0.50727"/>
</startup>

Ale musiał umieścić go jako pierwszy element potomny tagu konfiguracji w aplikacji.config dla tego, aby zadziałało .

<?xml version="1.0"?>
  <configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
      <supportedRuntime version="v2.0.50727"/>
    </startup>
  ......
....
 7
Author: Deshan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-13 17:11:35

Powyższe nie zadziałało dla mnie (pracuję nad aplikacją internetową) - ale to zadziałało...

Edytuj sgen.exe.plik konfiguracyjny w folderze (musiałem najpierw utworzyć); C:\Program Files(x86)\Microsoft SDKs\Windows\v8.0a\bin \ NETFX 4.0 Tools (Istnieje również jeden w folderze v7. 0, ale nie musiałem go zmieniać, używam VS2012)

Konenty XML powinny wyglądać tak (tak samo w poprzednich odpowiedziach)

<?xml version ="1.0"?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <requiredRuntime safemode="true" imageVersion="v4.0.30319" version="v4.0.30319"/>
    </startup>
</configuration>
 5
Author: MarkPm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-22 14:26:38

Jeśli pracujesz w usłudze sieci web i zestaw v2. 0 jest zależnością, która została załadowana przez WcfSvcHost.exe Następnie musisz dołączyć

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" />
</startup>

W ..\Microsoft Visual Studio 10.0 \ Common7 \ IDE\ WcfSvcHost.exe.config file

W ten sposób Visual Studio będzie w stanie wysyłać właściwe informacje przez loader w czasie wykonywania.

 5
Author: MrBit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-21 00:50:53

Natknąłem się na ten problem, gdy zmieniliśmy stronę na Visual Studio 2015. Żadna z powyższych odpowiedzi nie zadziałała. W końcu uruchomiliśmy go dodając następujący plik konfiguracyjny do ALL sgen.pliki wykonywalne exe na maszynie

<?xml version ="1.0"?>
    <configuration>
        <startup useLegacyV2RuntimeActivationPolicy="true">
            <supportedRuntime version="v4.0" />
        </startup>    
</configuration>

Szczególnie w tym miejscu, nawet gdy celowaliśmy w. NET 4.0:

C:\Program Files(x86)\Microsoft SDKs\Windows\v10.0a\bin \ NETFX 4.6 Tools

 4
Author: Run CMD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-22 12:26:30

Użyłem tego config:

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v2.0"/>
    <supportedRuntime version="v4.0"/>
</startup>

Pracował dla mnie

 3
Author: OmriSela,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-28 14:12:42

Miałem ten problem podczas aktualizacji do Visual Studio 2015 i Żadne z zamieszczonych tutaj rozwiązań nie zrobiło żadnej różnicy, chociaż config ma rację lokalizacja zmiany nie jest. Naprawiłem ten problem dodając tę konfigurację:

<startup useLegacyV2RuntimeActivationPolicy="true">
</startup>
Do: C:\Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ TE.ProcessHost.Zarządzane.exe.config

Następnie uruchom ponownie Visual Studio.

 1
Author: Michael Armitage,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-27 14:42:09

Znalazłem sposób na obejście tego po 3-4 godzinach googlowania. Dodałem następujący

<startup selegacyv2runtimeactivationpolicy="true">
  <supportedruntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>

Jeśli to nie rozwiąże Twojego problemu to-- > w referencjach projektu Right Click on DLL gdzie pojawia się błąd --> Select Properties--> Check the Run-time Version --> jeśli jest v2.0.50727 to znamy problem. Problem w tym, że: - masz 2.0 Version of respective DLL. Rozwiązanie to: - możesz delete the respective DLL z referencji projektu, a następnie download the latest version of DLL's z odpowiedniej strony internetowej i dodać odniesienie do najnowszej wersji referencji DLL, a następnie będzie działać.

 0
Author: venu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-28 11:07:13

Doświadczyłem tego samego błędu i spędziłem wieczność dodając sugerowane instrukcje startowe do różnych plików konfiguracyjnych w moim rozwiązaniu, próbując wyizolować niedopasowanie struktury. Nic nie działało. Dodałem również informacje o uruchomieniu do moich schematów XML . To też nie pomogło. Patrząc na plik, który był przyczyną problemu (który mówi tylko, że został "przeniesiony lub usunięty"), okazało się, że w rzeczywistości był to kompilator licencji (LC).

Usuwanie naruszonych licencji.licx wydaje się, że plik naprawił problem.

 0
Author: mono código,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:55:13

Miałem do czynienia z podobnym problemem podczas migracji kodu Z VS 2008 do VS 2010 Wprowadzanie zmian w aplikacji.plik konfiguracyjny rozwiązał problem dla mnie.

<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319"
         sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>
</configuration>
 0
Author: Sonali.thecoder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-15 19:37:43

Dodaj następujące 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 znajdziesz tego pliku, utwórz go i dodaj)

 <?xml version ="1.0"?>

<configuration>
 <runtime>        
        <generatePublisherEvidence enabled="false"/>    
    </runtime>

    <startup useLegacyV2RuntimeActivationPolicy="true">

                <supportedRuntime version="v4.0" />

    </startup>    

</configuration>
To rozwiązanie rozwiązało problem
 0
Author: Muheeb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-27 18:01:57

Używam

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
    <supportedRuntime version="v2.0.50727"/>
</startup>

To działa, ale tuż przed znacznikiem de </configuration> w przeciwnym razie znacznik startowy nie działa poprawnie

 0
Author: RubenP5,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-09 09:12:35

Również miałem ten problem z biblioteką klas, jeśli ktoś ma problem z biblioteką klas dodaną do głównej aplikacji. Wystarczy dodać

<startup useLegacyV2RuntimeActivationPolicy="true">

Do głównej aplikacji, która następnie zostanie wybrana przez bibliotekę klas.

 -1
Author: Raghulan Gowthaman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-06 07:56:18