共用方式為


Visual Basic 中的全域屬性

更新:2007 年 11 月

大部分的屬性 (Attribute) 會附加至特定的語言項目,例如類別或方法;但是,有些屬性是全域性,亦即它們適用於整個組件或模組。

您可以透過組件資訊對話方塊,在 Visual Studio 整合式開發環境 (IDE) 中設定許多屬性。如需詳細資訊,請參閱管理應用程式屬性管理組件和資訊清單簽署

組件屬性 (Attribute)

您可以使用下列語法指定組件層級 (Assembly-level) 的屬性:

<Assembly: Attribute1, Assembly: Attribute2..., Assembly: AttributeN>

您可以使用類似的語法指定模組層次的屬性:

<Module: Attribute1, Module: Attribute2..., Module: AttributeN>

您可以在原始程式碼中的任何最上層指示詞 (例如 Option Explicit 和 Imports 陳述式) 後面加入全域屬性,但是這些都必須放在任何型別或命名空間的宣告之前。全域屬性可出現在專案中的多個原始程式檔中,但是它們通常會被置於 Visual Basic 專案自動建立的 AssemblyInfo.vb 檔案中。

組件 (Assembly) 屬性值會提供關於組件的資訊。這些屬性 (Attribute) 可分類如下:

  • 組件識別屬性 (Attribute)

  • 資訊屬性 (Attribute)

  • 組件資訊清單 (Assembly Manifest) 屬性 (Attribute)

  • 強式名稱屬性

組件識別屬性

三種屬性 (Attribute) (如果允許的話再加上強式名稱) 會判斷組件的識別:名稱、版本和文化特性 (Culture)。這些屬性將形成組件的完整名稱,而且是在程式碼中參考組件時必須使用的屬性。您可以使用屬性 (Attribute) 來設定組件的版本和文化特性。但是,名稱值是由編譯器、組件資訊對話方塊中的 Visual Studio IDE 或「組件連結器」(Al.exe) 於建立組件時,根據包含組件資訊清單的檔案所設定。AssemblyFlagsAttribute 屬性會指定組件的多個複本是否可以共存。

下表顯示識別屬性 (Attribute)。

屬性

目的

AssemblyName

完整描述組件的識別。

AssemblyVersionAttribute

指定組件的版本。

AssemblyCultureAttribute

指定組件所支援的文化特性。

AssemblyFlagsAttribute

指定組件是支援在同一部電腦上、同一處理序中還是同一應用程式定義域中並存執行。

下列程式碼會將版本和文化特性屬性 (Attribute) 套用至組件:

'Set version number for assembly.
<Assembly: Reflection.AssemblyVersionAttribute("4.3.2.1")> 
'Set culture as German.
<Assembly: Reflection.AssemblyCultureAttribute("de")> 

資訊屬性

您可以使用資訊屬性來提供組件的其他公司或產品資訊。下表顯示在 System.Reflection 命名空間中定義的資訊屬性。

屬性

目的

AssemblyProductAttribute

定義自訂屬性來指定組件資訊清單 (Assembly Manifest) 的產品名稱。

AssemblyTrademarkAttribute

定義自訂屬性來指定組件資訊清單的商標。

AssemblyInformationalVersionAttribute

定義自訂屬性來指定組件資訊清單的資訊版本。

AssemblyCompanyAttribute

定義自訂屬性來指定組件資訊清單的公司名稱。

AssemblyCopyrightAttribute

定義自訂屬性來指定組件資訊清單的著作權。

AssemblyFileVersionAttribute

針對 Win32 檔案版本資源,指示編譯器使用特定版本號碼。

CLSCompliantAttribute

指出組件是否符合 Common Language Specification (CLS) 標準。

組件資訊清單屬性

您可以使用組件資訊清單屬性,提供組件資訊清單中的資訊。其中包括標題、描述、預設別名和組態。下表顯示 System.Reflection 在命名空間中定義的組件資訊清單屬性。

屬性

目的

AssemblyTitleAttribute

定義自訂屬性來指定組件資訊清單的組件標題。

AssemblyDescriptionAttribute

定義自訂屬性來指定組件資訊清單的組件描述。

AssemblyConfigurationAttribute

定義自訂屬性來指定組件資訊清單的組件組態 (如正式版本或偵錯版本)。

AssemblyDefaultAliasAttribute

為組件資訊清單定義一個易記的預設別名

強式名稱屬性

強式名稱是唯一的識別項,可保護識別及組件的完整。您可以透過專案設計工具、簽署頁,從 Visual Studio IDE 來簽署組件。如需詳細資訊,請參閱管理組件和資訊清單簽署

或者,您可以使用強式名稱屬性來設定組件強式名稱。下表顯示在 System.Reflection 命名空間中定義的強式名稱屬性。

屬性

目的

AssemblyDelaySignAttribute

布林值,表示您是否要在可執行檔案中為強式名稱簽章保留空間,但是延後到後階段才實際簽名。如需詳細資訊,請參閱延遲簽署組件

AssemblyKeyFileAttribute

指示含有金鑰的檔案。KeyFile 的位置應該相對於專案輸出目錄,亦即 %Project Directory%\obj\<configuration>。例如,如果您的 KeyFile 位於專案目錄中,就可以將 AssemblyKeyFile 屬性 (Attribute) 指定為

[assembly: AssemblyKeyFile("..\\..\\mykey.snk")]

AssemblyKeyNameAttribute

參考電腦中 Crypto Service Provider (CSP) 內安裝的金鑰 (Key)。您必須指定金鑰,才能簽署檔案。

如果已指定 KeyFile 和 KeyName 值,則會發生下列處理:

  • 如果可在 CSP 中找到 KeyName,則會使用這個金鑰。

  • 如果沒有 KeyName 但是有 KeyFile,則會在 CSP 中安裝 KeyFile 中的金鑰,並使用這個金鑰。

  • 如需詳細資訊,請參閱組件安全性考量

簽章組件

您可以用兩種不同但又互補的方式來簽署組件:使用強式名稱或使用簽章。您可以使用 Visual Studio IDE 專案設計工具、簽署頁或使用檔案簽署工具 (Signcode.exe) 來簽署。使用強式名稱簽署組件時,就會將公開金鑰加密加入至含有組件資訊清單的檔案中。強式名稱簽署可協助驗證唯一名稱、防止冒用名稱,並且在解析參考時為呼叫端提供某種識別。如需詳細資訊,請參閱 管理組件和資訊清單簽署HOW TO:使用強式名稱簽署組件

若要使用強式名稱簽章組件

  1. 使用強式名稱工具 (Sn.exe) 產生含有金鑰組 (Key Pair) 的金鑰檔。

  2. 將強式名稱屬性加入至 AssemblyInfo.vb 檔案,該檔案是透過 Visual Basic 專案自動建立的。若要編輯這個檔案,請在 [方案總管] 中按兩下檔名。

    下列範例會使用延遲簽署來建立強式名稱組件與名為 myKey.snk 的公開金鑰檔。

    <Assembly: Reflection.AssemblyKeyFile("myKey.snk")> 
    <Assembly: Reflection.AssemblyDelaySign(True)> 
    
    注意事項:

    如果您不要建立組件,例如使用 /target:module 選項從命令列進行編譯時,就會忽略組件層級 (Assembly-level) 的屬性。

請參閱

工作

HOW TO:定義您自己的屬性

HOW TO:使用強式名稱簽署組件

概念

屬性的應用

組件安全性考量

參考

強式名稱工具 (Sn.exe)

檔案簽署工具 (Signcode.exe)

專案設計工具、簽署頁

組件資訊對話方塊

其他資源

Visual Basic 中的自訂屬性

管理應用程式屬性

管理組件和資訊清單簽署