Używam programu Visual Studio 2012 i .Net Framework 4.5 Mam 2 rozwiązania: 1) Aplikacja WPF 2) Biblioteka klas (dll)Zespół trybu mieszanego jest zbudowany w stosunku do wersji "2.0.50727" środowiska wykonawczego i nie można go załadować w środowisku wykonawczym 4.0.
Biblioteka klas zawiera 3 przyciski i kontrolkę, która musi znajdować się wewnątrz formantu WindosFormsHost, ponieważ została utworzona dla WinForm.
Jedynymi zestawami referencyjnymi poza tymi systemami .NET Framework są wymienione kontrolki WinForm i iTextSharp.
Kontrola winforms wydaje się być trochę stary i kiedy mogę umieścić odniesienie w moim dll Mam ten sam błąd jak tytuł, ale po drugim tak, pytania/odpowiedzi, mój kładę to w moim pliku config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
błąd:
tryb mieszany zespół jest zbudowany na wersji „v2.0.50727” w czasie rzeczywistym i nie może być załadowany w środowisku wykonawczym 4.0 bez informacji dodatkowej konfiguracji
Jak już wspomniałem, widziałem pytania dotyczące tego problemu i rozwiązali problem w moim projekcie DLL, ale w projekcie korzystającym z tej biblioteki próbowałem ich wszystkich bezskutecznie. Dla porównania:
- What 'additional configuration' is necessary to reference a .NET 2.0 mixed mode assembly in a .NET 4.0 project?
- Mixed mode assembly is built against version ‘v2.0.50727′ of the runtime
- What does 'useLegacyV2RuntimeActivationPolicy' do in the .NET 4 config?
- Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime
- Mixed mode assembly is built against version X and cannot be loaded in version Y of the runtime without additional configuration information
w tym projekcie mój plik konfiguracyjny ma te same znaczniki z tymi samymi wartościami.
Należy również zauważyć, że w mojej aplikacji WPF na początku otrzymywałem komunikat o błędzie, że nie można znaleźć określonego dll (dla formantu WinForm), w końcu umieściłem dll tej kontroli w GAC.
Próbowałem zmienić ramkę docelową dla wszystkich możliwości (4.5, 4.0 pełna i klient, 3.5 pełne i klienta, 3.0 i 2.0), budując moją bibliotekę DLL w debugowaniu i wydaniu i ustawiając "Generuj zespół do serializacji" do OFF również zmienił cel platformy z Dowolnego CPU na x86 i x64. Próbowałem tylko zmieniać wartość jednego ustawienia naraz.
Czy to jest problem w VS2012, czy co muszę zrobić, aby rozwiązać ten problem?
EDIT:
Powyższy błąd jest wyświetlany w czasie projektowania na liście błędów, projektant pokazuje błąd mówiąc „Nie można utworzyć instancję«my_class»”
Wewnętrzna wyjątkiem, że jeden mówi: "Set connectionId zwrócił wyjątek", a wewnętrznym wyjątkiem jest komunikat tytułowy.
to jeszcze pozwala, aby roztwór został zbudowany, a po uruchomieniu aplikacji, mam w zasadzie takie same, poza tym, że najgłębsza wyjątek mówi:
„Nie można załadować pliku lub zestawu„SigPlusNET, Version = 1.1 .3358.14336, Culture = neutral, PublicKeyToken = 6aef07010bb0624f 'lub jedna z jego zależności. Podjęto próbę załadowania programu o nieprawidłowym formacie. "
Że jeden jest montaż kontrolki WinForms, w trakcie kontroli przez dotPeek jedynymi zależnościami to ma to te .NET Framework
prawym przyciskiem myszy projekt EXE, właściwości , Odblokuj kartę, odznacz "Włącz proces hostingu Visual Studio" i spróbuj ponownie. –
Nie wspomniałem o tym w moim pytaniu, ale dostaję to w czasie projektowania, kiedy przeciągam i upuszczam kontrolkę z przybornika (program ulega awarii po uruchomieniu), będę edytować moje pytanie i dodać wyjątek, który otrzymuję w czasie wykonywania –
Drugi błąd, który właśnie napisałeś w edycji, jest taki, że SigPlusNET (lub coś, co używa) jest niewłaściwą platformą docelową. Albo twoja aplikacja jest 32-bitowa, a SigPlusNET (lub zależność) jest 64-bitowa lub odwrotnie. –