編譯器錯誤 CS0281
更新:2007 年 11 月
錯誤訊息
Friend 存取權限是授與 'AssemblyName1',但是輸出組件名為 'AssemblyName2'。請嘗試加入 'AssemblyName1' 的參考,或者變更輸出組件的名稱使其相符。
Friend 存取權限是新的 Common Language Runtime (CLR) 功能,可讓組件看見其他組件的非公用型別。當授與 Friend 存取權限的組件為獲得授權的組件指定了錯誤名稱時,便會發生這個錯誤。如需詳細資訊,請參閱 Friend 組件 (C# 程式設計手冊)。
範例
下列程式碼範例序列會產生 CS0281。
用來建立強式名稱組件的檔案,是以下列方式產生:
sn -d CS0281.snk
sn -k CS0281.snk
sn -i CS0281.snk CS0281.snk
sn -pc CS0281.snk key.publickey
sn -tp key.publickey
// CS0281.cs
// compile with: /target:library /keyfile:CS0281.snk
public class A {}
// CS0281_b.cs
// compile with: /target:library /keyfile:CS0281.snk /reference:CS0281.dll
[assembly:System.Runtime.CompilerServices.InternalsVisibleTo("CS0281 , PublicKey=00240000048000009400000006020000002400005253413100040000010001004b2d4d56af7c50be2fcbbf97cb880b9e73ad84467a587191fef63aadc118a96cecf9d508cd679c907b6e20f71684300bdc2c0a851019af0c96b29bf8f1339753276041aefd67db46139e6348b3a12f29537b4dc6c2c19829df2c9ed6803f3c63c3b84cfa2728849386aea575c543a5f70fa85793d2946f15f7fe1ccb0c5e8fe0")]
class B : A {}
下列範例會產生 CS0281。
請注意,此範例所產生的輸出檔,會和第一個範例中的輸出檔使用相同的名稱。若要解決這個問題,請勿變更元件的組件屬性並加入類別 C。
// CS0281_c.cs
// compile with: /target:library /out:CS0281.dll /keyfile:CS0281.snk /reference:CS0281_b.dll
// CS0281 expected
[assembly:System.Reflection.AssemblyVersion("3")]
[assembly:System.Reflection.AssemblyCulture("en-us")]
class C : B {}
public class A {}