To całkowicie sprawdziło się dla mnie. UWAGA: Potrzebujesz NO przestrzeń nazw na znaczniku configuration
. A ty MUSISZ mieć przestrzeń nazw na swoim tagu assemblyBinding
.
<assemblyBinding> Element for <runtime>
<!-- important: no namespace -->
<configuration>
<runtime>
<!-- important, must have this namespace -->
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Strongly.Named.Assembly" publicKeyToken="xxx" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Czy oba te albo nie będzie go odczytać. Jeśli daje błąd, że nie może załadować niczego oprócz 2.0.0.0 w tym przykładzie, to nie podnosi poprawnie elementów konfiguracyjnych.
Działa to również tylko w przypadku mocno nazwanych złożeń.Aby dowiedzieć się, czy coś jest zdecydowanie o nazwie uruchom następującą komendę w oknie komend VC
open (menu Start> Wszystkie programy> Visual Studio> wizualne narzędzia studyjne> wiersz polecenia visual studio)
Następnie uruchom:
sn -vf "path-to-assembly.dll"
Jeśli zwraca, że jest ważna, to jest silnie nazywane.
źródło: http://blog.codingoutloud.com/2010/03/13/three-ways-to-tell-whether-an-assembly-dl-is-strong-named/
Zrobiłem dokładnie to samo. Ale bez powodzenia. Podczas kompilowania projektu w samej ideie, dając błąd mówiąc: "brakuje odpowiedzi na temat assembly a.dll 3.1.1.0 – Suresh
Znacznik konfiguracyjny nie zawiera atrybutu xmlns." No Luck – Suresh
To działało po mojej stronie, dzięki. Moje pytanie brzmi: dlaczego działa, gdy Atrybut xmlns został usunięty? – csg