2013-03-17 15 views
5

Moje rozwiązanie Visual Studio 2010 odwołuje się do zastrzeżonej biblioteki DLL innej firmy.Zewnętrzna biblioteka DLL nie ma "silnej nazwy"?

Kiedy próbuję skompilować rozwiązanie komunikat o błędzie brzmi:

Nie można emitować montaż: odwołuje montażowych NameOfAssembly.DLL 'ma nie ma silnej nazwy

Czy tylko rozwiązanie tego problemu, aby podpisać DLL strony trzeciej za pomocą własnego klucza?

Odpowiedz

2

Jeśli chcesz silne podpisane zespoły, wszystkie dokumenty muszą być mocne podpisany. Ten entry opisuje kroki.

6

To zaniedbanie karnej przez kogokolwiek, który tworzy zespoły wykorzystywane przez innych, biorąc pod uwagę jak banalne jest to, aby dać zespół silną nazwę podczas jej budowy. Wykonanie go później jest dość bolesne, musisz zdekompilować zespół za pomocą ildasm.exe i umieścić go razem z ilasm.exe, teraz używając opcji/key.

Jeśli masz stosunki robocze z właścicielem, a następnie wysłać je nastygram. Jeśli tego nie zrobisz, prawdopodobnie powinieneś zadać pytanie o jakość montażu, jest to poważny nadzór i pokazuje dowody na to, że niewiele osób używa tego zespołu.

+0

Czy mogę użyć 'al.exe'? – CJ7

+0

Hmm, złom pierwszy akapit i wyślij tę wiadomość e-mail. –

+2

@HansPassant Co ciekawe, Dapper również nie jest podpisany. Obecnie musimy to obejść dzięki pakietowi Dapper Nuget. Wymagamy podpisanych zespołów na naszym źródle, co zrobiliśmy przez integrację źródła Dapper na razie. –

2

Upewnij się, że są licencjonowane zespoły do ​​odwrócenia inżynier jako silnej nazwy. Nie chcę, żebyś miał jakiekolwiek problemy prawne. Możesz wzmocnić nazwę zespołu za pomocą poleceń ILDASM i ILASM. W wierszu polecenia programu Visual Studio.

Użyj ILDASM konwertować montażu na kod MISL. ILDASM MyThirdParty.dll /out:MyThirdParty.il

Użyj ILASM, aby skompilować z kluczem strony. ILASM MyThirdParty.il/dll /resource=MyThirdParty.res /key=MyKey.snk

Jeśli potrzebujesz silnego klucza nazwy, użyj polecenia SN. Myślę, że jest to opcja -k. Jeśli pojawi się wyjątek BadImage następnie sprawdzić, jaka wersja CLR zespół został skompilowany w jeśli jego CLR 2.0/3.5 a następnie użyć „C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ ILASM”. Zamiast 4,0 wersja.

Powiązane problemy