Posts mit dem Label PublicKey werden angezeigt. Alle Posts anzeigen
Posts mit dem Label PublicKey werden angezeigt. Alle Posts anzeigen

Freitag, 23. Dezember 2011

assembly InternalsVisibleTo

Um in einem Testprojekt auf als internal ausgewiesene Klassen zugreifen zu können müssen diese explizit für die TestAssembly freigegeben werden. Dies erfolgt über das Attribut

[assembly: InternalsVisibleTo("VisualWebPart1Tests")]

Ist die zu testende Klasse mit einem Strongkey signiert, muss auch das TestAssembly mit einem StrongKey signiert werden. Bei der Freigabe muss dann aber zusätzlich der PublicKey (nicht PublicKeyToken) der Test-Assembly angeben werden.

[assembly: InternalsVisibleTo("VisualWebPart1Tests, PublicKey=XXX")]

Diesen kann man unter anderem mit den folgenden Befehlen aus dem zur Signierung der Test-Assembly verwendeten Key-File extrahieren


sn.exe -p ..\..\key.snk publickey.snk


Sollte hierbei der Fehler
Failed to extract public key from key pair -- Bad Version of provider.
angezeigt werden handelt es beim key.snk bereits um ein publickey-File

den eigentlichen  Publickey erhält man mit

sn.exe -tp  publickey.snk  > publickey.txt