Wie kann ich InternalsVisibleTo-Attribut arbeiten durch die Unterzeichnung eines öffentlich-token-Schlüssel sicher?

Ich versuche, setzen einige Interna zu meinem unit-test-Projekt mit:

[assembly: InternalsVisibleTo("MyTest")]

Aber ich bin immer der Fehler:

Fehler 1 Friend assembly reference MyTest' ist ungültig. Starke Namen
signierte Assemblys angeben müssen, einen öffentlichen Schlüssel in Ihre
InternalsVisibleTo-Deklarationen. .../MyClass.cs...

Wenn ich weisen Sie eine PublicTokenKey manuell:

[assembly: InternalsVisibleTo("MyTest, PublicKeyToken=XxxxxYysakf")]

Die Lösung baut ohne Fehler.

  1. Warum muss ich auf ein public-key-token?
  2. Ich bin nicht sicher, ob ich etwas zu brechen in der Produktion, einschließlich der public-key-token.

So, was ist die beste und sicherste Weise, die die Zuordnung eines öffentlichen Schlüssel zu meinem Test-Projekt?

  • Sie sollten nicht zuweisen müssen, eine public-key-token. Aber Sie brauchen, um sicherzustellen, dass die assembly-Namen übereinstimmen.
  • Ich bin kopieren und einfügen der Versammlung, die Namen von den Namen der Assembly-Feld angezeigt, in den Projekteigenschaften. So sollte es richtig sein, ich gues..
  • Okay, also ich habe nicht begegnet diesem Problem mich, aber dieser Kerl hier vielleicht eine weitere option für Sie blog.tylerholmes.com/2008/04/...
  • Die Lösung ohne Fehler erstellt wird, wenn Sie verwenden, PublicKeyToken, aber Intellisense könnte einen Hinweis darauf geben, dass die assembly-Verweis konnte nicht aufgelöst werden.
InformationsquelleAutor pencilCake | 2011-08-25
Schreibe einen Kommentar