Definicja manifestu znajdującego się zestawu nie pasuje do odniesienia do zestawu

Próbuję uruchomić kilka testów jednostkowych w aplikacji C# Windows Forms (Visual Studio 2005) i pojawia się następujący błąd:

System. IO. FileLoadException: Could not load file or assembly 'Utility, Version=1.2.0.200, Culture=neutral, PublicKeyToken=764d581291d764f7' or one of its dependencies. Definicja manifestu znajdującego się zestawu nie zgadza się z odniesieniem do zestawu. (Wyjątek od HRESULT: 0x80131040) * *

W x. Foo.FooGO ()

At x. Foo.Foo2 (String groupName_) w Foo.cs: line 123

W x. Foo.UnitTests.FooTests.TestFoo() w stopkach.cs: line 98 * *

System. IO. FileLoadException: Could not load file or assembly 'Utility, Version=1.2.0.203, Culture=neutral, PublicKeyToken=764d581291d764f7' or one of its dependencies. Definicja manifestu znajdującego się zestawu nie zgadza się z odniesieniem do zestawu. (Wyjątek od HRESULT: 0x80131040)

Zaglądam do referencji i mam tylko odniesienie do Utility version 1.2.0.203 (drugi jest stary).

Jakieś sugestie, jak dowiedzieć się, co próbuje odwołać się do starej wersji tego pliku DLL?

Poza tym, chyba nawet nie mam tego starego zestawu na dysku twardym. Czy jest jakieś narzędzie do wyszukiwania tego starego wersjonowanego zestawu?

Author: Community, 2008-10-18

30 answers

The. Net Assembly loader:

  • nie można znaleźć 1.2.0.203
  • ale znalazłem 1.2.0.200

Ten zestaw nie pasuje do tego, co było wymagane i dlatego pojawia się ten błąd.

W prostych słowach, nie można znaleźć zespołu, do którego się odwołano. Upewnij się, że może znaleźć właściwy zespół, umieszczając go w GAC lub w ścieżce aplikacji. Zobacz też https://docs.microsoft.com/archive/blogs/junfeng/the-located-assemblys-manifest-definition-with-name-xxx-dll-does-not-match-the-assembly-reference.

 476
Author: Lars Truijens,
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-02-22 01:13:00

Możesz zrobić kilka rzeczy, aby rozwiązać ten problem. Po pierwsze, użyj wyszukiwania plików systemu Windows, aby przeszukać dysk twardy w poszukiwaniu zestawu (.dll). Po uzyskaniu listy wyników wykonaj Widok - >wybierz Szczegóły... a następnie zaznacz "Wersja pliku". Spowoduje to wyświetlenie numeru wersji na liście wyników, dzięki czemu możesz zobaczyć, skąd pochodzi stara wersja.

Również, jak powiedział Lars, sprawdź Gac, aby zobaczyć, jaka wersja jest tam wymieniona. Ten artykuł Microsoftu stwierdza, że zestawy Znalezione w GAC nie są kopiowane lokalnie podczas kompilacji, więc może być konieczne usunięcie starej wersji przed wykonaniem rebuild all. (Zobacz moją odpowiedź na to pytanie {[5] } dla uwag na temat tworzenia pliku wsadowego, aby zrobić to za ciebie)

Jeśli nadal nie możesz dowiedzieć się, skąd pochodzi Stara Wersja, możesz użyć fuslogvw.aplikacja exe, która jest dostarczana z Visual Studio, aby uzyskać więcej informacji o awariach wiązania. Microsoft ma informacje o tym narzędziu tutaj . Pamiętaj, że musisz włączyć rejestrowanie, ustawiając HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\EnableLog klucz rejestru na 1.

 92
Author: Seth Petry-Johnson,
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 12:10:41

Po prostu natknąłem się na ten problem sam, i okazało się, że problem był coś innego niż to, co inni napotkali.

Miałem dwie biblioteki DLL, do których odwoływał się mój główny projekt: CompanyClasses.dll i CompanyControls.dll. Dostałem błąd w czasie wykonywania:

Nie można załadować pliku lub zestawu "CompanyClasses, Version=1.4.1.0, Kultura = neutralna, PublicKeyToken=045746ba8544160c " lub jedna z jego zależności. Położony definicja manifestu zgromadzenia czy not match the assembly reference

Problem w tym, że nie miałem żadnej firmy.pliki dll w moim systemie o numerze wersji 1.4.1. Brak w GAC, brak w folderach aplikacji...nigdzie. Przeszukałem cały dysk. Wszystkie firmy.pliki dll, które miałem to 1.4.2.

Prawdziwym problemem, jaki znalazłem, było to, że CompanyControls.dll odwołuje się do wersji 1.4.1 CompanyClasses.dll. Właśnie skompilowałem CompanyControls.dll (po jego odwołaniu CompanyClasses.dll 1.4.2) i ten błąd odszedł dla mnie.

 60
Author: Nathan Bedford,
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
2009-11-17 19:15:27

Następujące przekierowanie dowolnej wersji zestawu do wersji 3.1.0.0. Mamy skrypt, który zawsze będzie aktualizować to odniesienie w aplikacji.config, więc już nigdy nie będziemy musieli zajmować się tym problemem.

Poprzez reflection można uzyskać zbiór i wygenerować ten blok z .sam plik dll.

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
 <dependentAssembly>
    <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="3.1.0.0" />
  </dependentAssembly>
</assemblyBinding>

Zauważ, że bez atrybutu przestrzeni nazw XML (xmlns) to nie będzie działać.

 54
Author: Yaniv.H,
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-12-03 17:27:41

Jeśli używasz Visual Studio, spróbuj "clean solution", a następnie Przebuduj swój projekt.

 46
Author: Tad,
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-07-13 03:27:38

Inne odpowiedzi nie pasowałyby do mnie. Jeśli nie zależy ci na wersji i po prostu chcesz, aby Twoja aplikacja działała, kliknij prawym przyciskiem myszy odniesienie i ustaw "konkretna wersja" NA false...To mi pomogło. Tutaj wpisz opis obrazka

 39
Author: RayLoveless,
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-02-27 18:48:31

Zaraz wszystkich rozwalę . . .

Usuń wszystkie odniesienia <assemblyBinding> z twojego .plik konfiguracyjny, a następnie uruchom to polecenie z konsoli Menedżera pakietów NuGet:

Get-Project -All | Add-BindingRedirect
 27
Author: codeMonkey,
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-01-28 04:19:15

Dodałem pakiet NuGet, tylko po to, aby uświadomić sobie, że część czarnej skrzynki mojej aplikacji odwołuje się do starszej wersji biblioteki.

Usunąłem pakiet i odwołałem się do statycznego pliku DLL starszej wersji, ale do sieci.plik konfiguracyjny nigdy nie był aktualizowany z:

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
    <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="6.0.0.0" />
</dependentAssembly>

Do czego powinien wrócić po odinstalowaniu pakietu:

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.5.0.0" />
</dependentAssembly>
 24
Author: frattaro,
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-04-01 08:07:28

Właśnie natknąłem się na ten problem i problem był taki, że miałem starą kopię .dll w katalogu debugowania mojej aplikacji. Możesz również sprawdzić tam (zamiast GAC), aby zobaczyć, czy go widzisz.

 22
Author: Neal Tibrewala,
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
2009-09-03 00:00:33

W moim przypadku ten błąd wystąpił podczas uruchamiania ASP.NET podanie. Rozwiązaniem było:

  1. Usuń foldery obj i bin w folderze projektu

Clean nie działa, rebuild nie działa, wszystkie odniesienia były w porządku, ale to nie było pisanie jednej z bibliotek. Po usunięciu tych katalogów wszystko działało idealnie.

 20
Author: Levi Fuller,
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-10-09 18:34:13

W moim przypadku była to stara wersja DLL w C:\WINDOWS\Microsoft.NET\Framework \ ~ \ tymczasowe ASP.NET Files \ katalog. Można usunąć lub zastąpić starą wersję, lub można usunąć i dodać z powrotem odniesienie do biblioteki DLL w projekcie. Zasadniczo, tak czy inaczej utworzy nowy wskaźnik do tymczasowego ASP.NET pliki.

 14
Author: Glade Mellor,
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-09-15 17:07:15

Dla nas problem był spowodowany czymś innym. Plik licencyjny Dla komponentów DevExpress zawierał dwie linie, jedną dla starej wersji komponentów, które nie były zainstalowane na tym konkretnym komputerze. Usunięcie starszej wersji z pliku licencyjnego rozwiązało problem.

Irytujące jest to, że komunikat o błędzie nie wskazywał, jakie odniesienie powodowało problemy.

 8
Author: Sire,
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
2009-11-23 11:09:54

Ten sam błąd jest wyrzucany, jeśli próbujesz opóźnić Wiązanie za pomocą reflection, jeśli zespół, do którego jesteś wiązany, ma silną nazwę lub zmienia token klucza publicznego. Błąd jest taki sam, chociaż w rzeczywistości nie znaleziono żadnego zestawu z określonym tokenem klucza publicznego.

Musisz dodać poprawny token klucza publicznego (możesz go uzyskać za pomocą sn - T w dll), aby rozwiązać błąd. Mam nadzieję, że to pomoże.

 6
Author: Guy Starbuck,
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-07-16 21:22:26

Mój był bardzo podobny do postu Nathana Bedforda, ale z lekkim zwrotem akcji. Mój projekt również odwoływał się do zmienionej biblioteki dll na dwa sposoby. 1) Bezpośrednio i 2) pośrednio poprzez odwołanie się do komponentu (biblioteki klas), który sam miał odniesienie do zmienionej biblioteki dll. Teraz mój projekt Visual studio dla komponentu (2) odwołał się do poprawnej wersji zmienionej biblioteki dll. Jednak numer wersji samego kompnentu nie został zmieniony. I w rezultacie Instalacja nowej wersji projekt nie zdołał zastąpić tego komponentu na komputerze klienckim.

Wynik końcowy: Direct reference (1) i Indirect reference(2) wskazywały na różne wersje zmienionej biblioteki dll na komputerze klienckim. Na mojej maszynie dev działało dobrze.

Rozdzielczość: Usuń aplikację; usuń wszystkie biblioteki DLL z folderu aplikacji; ponownie zainstaluj.W moim przypadku to takie proste.

 5
Author: Bijimon,
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-09-16 11:05:29

Chciałbym tylko dodać, że tworzyłem podstawowy ASP.NET projekt MVC 4 i dodano DotNetOpenAuth.AspNet via NuGet. Spowodowało to ten sam błąd po odwołaniu się do niedopasowania pliku DLL dla firmy Microsoft.Www.Strony www.OAuth.

Aby to naprawić zrobiłem Update-Package i wyczyściłem roztwór do pełnej przebudowy.

U mnie to działało i jest trochę leniwe, ale czas to pieniądz: - P

 5
Author: Ben Pretorius,
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-26 00:22:57

Dostałem ten błąd podczas budowania serwera Team Foundation ' s build-service. Okazało się, że miałem wiele projektów w moim rozwiązaniu wykorzystujących różne wersje tej samej biblioteki dodane za pomocą NuGet. Usunąłem wszystkie stare wersje z NuGet i dodałem nową jako odniesienie dla wszystkich.

Team Foundation Server umieszcza wszystkie pliki DLL w jednym katalogu i oczywiście może być tylko jeden plik DLL o określonej nazwie w danym czasie.

 5
Author: cederlof,
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-12-03 17:22:34

Pozwolę komuś skorzystać z mojej głupoty ścinania. Mam pewne zależności do całkowicie oddzielnej aplikacji (nazwijmy to App1). Biblioteki dll z tego App1 są wciągane do mojej nowej aplikacji (App2). Za każdym razem robię aktualizacje w APP1, muszę utworzyć nowe dll i skopiować je do App2. Cóż. . .Miałem dość kopiowania i wklejania między 2 różnymi wersjami App1, więc po prostu dodałem prefiks 'NEW_' do dll.

No cóż. . . Domyślam się, że proces budowania skanuje / bin folder i gdy dopasuje coś nieprawidłowo, to barfs z tym samym komunikatem o błędzie, jak wspomniano powyżej. Usunąłem moje wersje "new_" i zbudował po prostu dandy.

 4
Author: Mike Murphy,
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-03-13 15:32:56

Moim problemem było skopiowanie kodu źródłowego na nową maszynę bez przeciągania żadnego z wymienionych zespołów.

Nic, co zrobiłem, nie naprawiło błędu, więc w pośpiechu usunąłem całkowicie katalog BIN. Przebudowałem mój kod źródłowy i od tej pory działał.

 4
Author: AEON Blue Software,
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-27 23:20:00

Moja aplikacja.config zawiera

<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.11.0"/>

Dla npgsql. Jakoś na maszynie użytkownika, moja aplikacja.exe.config zaginął. Nie jestem pewien, czy to był głupi użytkownik, usterka instalatora, czy jeszcze wykręcony antywirus. Wymiana pliku rozwiązała problem.

 4
Author: Thomas,
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-12-03 17:26:48

Po wypróbowaniu wielu z powyższych rozwiązań bez poprawek, sprowadzało się to do upewnienia się, że w aplikacji w Visual Studio włączono opcję "Automatyczne generowanie przekierowań wiążących".

Tutaj wpisz opis obrazka

Więcej informacji na temat włączania automatycznego przekierowania wiązania można znaleźć tutaj: https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/how-to-enable-and-disable-automatic-binding-redirection

 4
Author: Cole,
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-06-24 19:56:05

Właśnie znalazłem kolejny powód, dla którego można uzyskać ten błąd. Wyczyściłem mój GAC ze wszystkich wersji konkretnej biblioteki i zbudowałem mój projekt w odniesieniu do konkretnej wersji wdrożonej razem z plikiem wykonywalnym. Kiedy uruchamiam projekt dostaję ten wyjątek szukając nowszej wersji biblioteki.

Powodem była Polityka wydawcy . Kiedy odinstalowałem wersje biblioteki z GAC, zapomniałem również odinstalować zestawy zasad wydawcy, więc zamiast używać lokalnie wdrożonych assembly assembly Loader znalazł w GAC politykę wydawcy, która nakazała mu szukać nowszej wersji.

 3
Author: Ladislav Mrnka,
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-06-01 13:07:32

Dla mnie konfiguracja pokrycia kodu w " Local.testtesttings "plik" spowodował " problem. Zapomniałem zaktualizować pliki, które były tam wymienione.

 3
Author: uli78,
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-04 09:04:45

Po prostu usunięcie zawartości folderu bin twojego projektu i odbudowanie rozwiązania rozwiązało mój problem.

 3
Author: dhiraj1mumbai,
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-08-10 04:15:27

Pytanie ma już odpowiedź, ale jeśli problem wystąpił w pakiecie NuGet w różnych wersjach w tym samym rozwiązaniu, możesz spróbować następujących rzeczy.

Open NuGet Package Manager, jak widzisz moja wersja projektu usługi jest inna niż inne.

Następnie zaktualizuj projekty, które zawierają starą wersję pakietu.

Tutaj wpisz opis obrazka

 2
Author: erhan355,
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-12-03 03:25:23

Czyszczenie i odbudowa rozwiązanie może nie zastąpić wszystkich bibliotek dll z katalogu wyjściowego.

Proponuję spróbować zmienić nazwę folderu z " bin " na "oldbin" lub " obj "na"oldobj"

I spróbuj ponownie zbudować swoją silucję.

Incase jeśli korzystasz z zewnętrznych bibliotek dll, musisz skopiować je do nowo utworzonego folderu " bin " lub "obj"po pomyślnym zbudowaniu.

Mam nadzieję, że to zadziała dla Ciebie.

 2
Author: Ganesh Londhe,
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-12-03 18:39:23

Żadne rozwiązanie nie zadziałało. Próbowałem czystego rozwiązania projektu, usunąć kosz, pakiet aktualizacji, pakiet downgrade i tak dalej... Po dwóch godzinach załadowałem domyślną aplikację.config from project with assemblies and there I changed wrong reference version from:

<dependentAssembly>
    <assemblyIdentity name="Microsoft.IdentityModel.Logging" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.5.0.0" newVersion="5.5.0.0" />
</dependentAssembly>

Do:

<dependentAssembly>
    <assemblyIdentity name="Microsoft.IdentityModel.Logging" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-3.14.0.0" newVersion="5.5.0.0" />
</dependentAssembly>

Po tym wyczyściłem projekt, zbudowałem go ponownie i zadziałało. Żadnego ostrzeżenia, żadnego problemu.

 2
Author: Mi1anovic,
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-08-25 16:44:58

Ręczne usunięcie starego zestawu z lokalizacji folderu, a następnie dodanie odniesienia do nowych zestawów może pomóc.

 1
Author: rjain,
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-06-06 09:27:09

Mam ten sam błąd... W moim przypadku zostało to rozwiązane w następujący sposób:

  • na początku, gdy aplikacja została zainstalowana, ludzie tutaj używali Microsoft Enterprise Library 4.1 w aplikacji.
  • w poprzednim tygodniu moja maszyna została sformatowana i po tym dzisiaj, gdy zbudowałem tę aplikację, pojawił się błąd, że brakuje zestawu Biblioteki Enterprise.
  • Następnie zainstalowałem Microsoft Enterprise Library 5.0, który dostałem w Google jako pierwszy wpis wyszukiwania.
  • Następnie, kiedy zbudowałem aplikację, to dało mi powyższy błąd, tzn. zlokalizowana definicja manifestu zestawu nie pasuje do odniesienia do zestawu.
  • Po wielu poszukiwaniach i analizie, odkryłem, że aplikacja odnosiła się do 4.1.0.0 i DLL w folderze binowym był w wersji 5.0.0.0
  • to, co zrobiłem, to zainstalowałem Microsoft Enterprise Library 4.1.
  • usunięto poprzednie odniesienie (5.0 ) i dodano odniesienie 4.0.
  • zbudowali aplikacja & voila...it zadziałało.
 1
Author: user4846550,
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-04-29 13:33:02

Oto moja metoda rozwiązania tego problemu.

  1. z komunikatu o wyjątku pobieramy nazwę biblioteki" problem " i "oczekiwany" numer wersji.

Tutaj wpisz opis obrazka

  1. Znajdź wszystkie kopie tego .dll w swoim rozwiązaniu, kliknij prawym przyciskiem myszy na nich i sprawdź, która wersja .niech będzie dll.

Tutaj wpisz opis obrazka

Ok, więc w tym przykładzie, mój .dll to zdecydowanie 2.0.5022.0 (więc Numer wersji wyjątku to źle).
  1. wyszukaj numer wersji, który został pokazany w komunikacie wyjątku we wszystkich .pliki csproj w Twoim rozwiązaniu. Zamień ten numer wersji na rzeczywisty numer z biblioteki dll.
Więc w tym przykładzie zastąpiłbym to...
<Reference Include="DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />

... tym...

<Reference Include="DocumentFormat.OpenXml, Version=2.0.5022.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
Zrobione !
 1
Author: Mike Gledhill,
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-11-15 16:00:00

W moim przypadku problem był między krzesłem a klawiaturą: -)

Could not load file or assembly 'DotNetOpenAuth.Core, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=2780ccd10d57b246' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference.
(Exception from HRESULT: 0x80131040)

Dwa lub więcej różnych zespołów chciało użyć innej wersji biblioteki DotNetOpenAuth, i to nie byłoby problemem. Ponadto na moim lokalnym komputerze www.config został automatycznie zaktualizowany przez NuGet:

<dependentAssembly>
    <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
    </dependentAssembly>
    <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly>

Potem zdałem sobie sprawę, że zapomniałem skopiować/wdrożyć nową sieć.konfiguracja serwera produkcyjnego. Więc jeśli masz ręczny sposób wdrażania sieci.config, sprawdź czy jest zaktualizowany. Jeśli mają zupełnie inną sieć.config dla serwera produkcyjnego, musisz zsynchronizować te sekcje dependentAssembly po użyciu NuGet.

 1
Author: Tomas Kubes,
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-12-03 17:21:26