UnregisterAssembly 工作
移除註冊 COM interop 用途的指定組件。執行 RegisterAssembly 工作 的反向工作。
參數
下表說明 UnregisterAssembly 工作的參數。
參數 |
描述 |
---|---|
Assemblies |
選擇性 ITaskItem[] 參數。 指定要移除註冊的組件。 |
AssemblyListFile |
選擇性 ITaskItem 參數。 包含有關 RegisterAssembly 工作和 UnregisterAssembly 工作之間狀態的資訊。這可以防止工作試圖移除組件的註冊,這裡是指無法在 RegisterAssembly 工作中註冊的組件。 如果指定了這個參數,就會忽略 Assemblies 和 TypeLibFiles 參數。 |
TypeLibFiles |
選擇性的 ITaskItem[] 輸出參數。 從指定的組件移除註冊指定的型別程式庫。
注意事項
只有在型別程式庫檔案名稱不同於組件名稱時,才會需要這個參數。
|
備註
這項工作不需要有組件即可成功。如果試圖移除註冊不存在的組件,工作將會成功並出現一項警告。原因是這項工作是從登錄移除組件註冊,才會發生這種情形。如果組件並不存在,就不會位於登錄之中,因此,這項工作就會成功。
除了以上列出的參數之外,此項工作還會繼承 AppDomainIsolatedTaskExtension 類別中的參數,而該類別本身又繼承 MarshalByRefObject 類別。MarshalByRefObject 類別會提供 Task 類別的相同功能,但是可以在其本身的應用程式定義域中具現化。
範例
下列範例使用 UnregisterAssembly 工作來移除註冊位於由 OutputPath 和 FileName 屬性指定之路徑的組件 (如果存在)。
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<OutputPath>\Output\</OutputPath>
<FileName>MyFile.dll</FileName>
</PropertyGroup>
<Target Name="UnregisterAssemblies">
<UnregisterAssembly
Condition="Exists('$(OutputPath)$(FileName)')"
Assemblies="$(OutputPath)$(FileName)" />
</Target>
</Project>