ResolveComReference 工作

取得一或多個類型程式庫名稱或 .tlb 檔案的清單,並將那些類型程式庫解析至磁碟上的位置。

參數

下表說明 ResolveCOMReference 工作的參數。

參數 描述
DelaySign 選擇性的 Boolean 參數。

如為 true,則將公開金鑰放在組件中。 如為 false,則完整簽署組件。
EnvironmentVariables 選擇性的 String[] 參數。

環境變數組陣列,以等號分隔。 這些變數是在規則環境區塊以外傳遞至繁衍的 tlbimp.exeaximp.exe,或選擇性地覆寫。
ExecuteAsTool 選擇性的 Boolean 參數。

如果為 true,會從適當目標 Framework 跨處理序執行 tlbimp.exeaximp.exe,以產生必要的包裝函式組件。 此參數會啟用多目標。
IncludeVersionInInteropName 選擇性的 Boolean 參數。

如為 true,則包裝函式名稱會包含 TypeLib 版本。 預設值為 false
KeyContainer 選擇性的 String 參數。

指定持有公開/私密金鑰組的容器。
KeyFile 選擇性的 String 參數。

指定包含公開/私密金鑰組的項目。
NoClassMembers 選擇性的 Boolean 參數。
ResolvedAssemblyReferences 選擇性的 ITaskItem[] 輸出參數。

指定已解析的組件參考。
ResolvedFiles 選擇性的 ITaskItem[] 輸出參數。

指定磁碟上的完整檔案,這個磁碟對應至已提供作為這項工作輸入之類型程式庫的實體位置。
ResolvedModules 選擇性的 ITaskItem[] 參數。
SdkToolsPath 選擇性的 System.String 參數。

如果 ExecuteAsTooltrue,則此參數必須設定為目標 Framework 版本的 SDK 工具路徑。
StateFile 選擇性的 String 參數。

指定 COM 元件時間戳記的快取檔案。 如果沒有,則每次執行都會重新產生所有的包裝函式。
TargetFrameworkVersion 選擇性的 String 參數。

指定專案目標 Framework 版本。

預設值為 String.Empty。 這表示不篩選以目標 Framework 為基礎的參考。
TargetProcessorArchitecture 選擇性的 String 參數。

指定慣用的目標處理器架構。 平移後,傳遞至 tlbimp.exe/machine 旗標。

參數值應該是 ProcessorArchitecture 的成員。
TypeLibFiles 選擇性的 ITaskItem[] 參數。

指定 COM 參考的類型程式庫檔案路徑。 此參數中包含的項目可能包含項目中繼資料。 如需詳細資訊,請參閱下面的 TypeLibFiles 項目中繼資料一節。
TypeLibNames 選擇性的 ITaskItem[] 參數。

指定要解析的類型程式庫名稱。 此參數中包含的項目必須包含某些項目中繼資料。 如需詳細資訊,請參閱下面的 TypeLibNames 項目中繼資料一節。
WrapperOutputDirectory 選擇性的 String 參數。

產生的 interop 組件在磁碟上所在位置。 如未指定此項目中繼資料,工作會使用專案檔所在目錄的絕對路徑。

TypeLibNames 項目中繼資料

下表描述將項目傳遞給 TypeLibNames 參數的可用項目中繼資料。

中繼資料 描述
GUID 必要的項目中繼資料。

類型程式庫的 GUID。 如未指定此項目中繼資料,則工作會失敗。
VersionMajor 必要的項目中繼資料。

類型程式庫的主要版本。 如未指定此項目中繼資料,則工作會失敗。
VersionMinor 必要的項目中繼資料。

類型程式庫的次要版本。 如未指定此項目中繼資料,則工作會失敗。
EmbedInteropTypes 選擇性的 Boolean 中繼資料。

若為 true,就會將 Interop 類型從這個參考直接內嵌到您的組件中,而不是產生 Interop DLL。
LocaleIdentifier 選擇性項目中繼資料。

類型程式庫的地區設定識別碼 (或 LCID)。 這會指定為 32 位元值,識別使用者、區域或應用程式慣用的人類語言。 如未指定此項目中繼資料,工作會使用預設的地區設定識別碼 "0"。
WrapperTool 選擇性項目中繼資料。

指定為此類型程式庫產生組件包裝函式使用的包裝函式工具。 如未指定此項目中繼資料,工作會使用預設的包裝函式工具 "tlbimp"。 可用且不區分大小寫的 TypeLib 選項有:

- Primary:當您想要使用 COM 元件已產生的主要 Interop 組件時,請使用此包裝函式工具。 當您使用此包裝函式工具時,請勿指定包裝函式的輸出目錄,因為這會造成工作失敗。
- TLBImp:當您想要產生 COM 元件的 Interop 組件時,請使用此包裝函式工具。
- PrimaryOrTLBImp:當您不確定 PrimaryTLBImp 是否適當時,請使用這個包裝函式工具。 會先套用 Primary 邏輯,然後套用 TLBImp
- AXImp:當您想要產生 ActiveX 控制項的 Interop 組件時,請使用此包裝函式工具。

TypeLibFiles 項目中繼資料

下表描述將項目傳遞給 TypeLibFiles 參數的可用項目中繼資料。

中繼資料 描述
EmbedInteropTypes 選擇性的 Boolean 參數。

若為 true,就會將 Interop 類型從這個參考直接內嵌到您的組件中,而不是產生 Interop DLL。
WrapperTool 選擇性項目中繼資料。

指定為此類型程式庫產生組件包裝函式使用的包裝函式工具。 如未指定此項目中繼資料,工作會使用預設的包裝函式工具 "tlbimp"。 可用且不區分大小寫的 TypeLib 選項有:

- Primary:當您想要使用 COM 元件已產生的主要 Interop 組件時,請使用此包裝函式工具。 當您使用此包裝函式工具時,請勿指定包裝函式的輸出目錄,因為這會造成工作失敗。
- TLBImp:當您想要產生 COM 元件的 Interop 組件時,請使用此包裝函式工具。
- AXImp:當您想要產生 ActiveX 控制項的 Interop 組件時,請使用此包裝函式工具。

注意

您為唯一識別類型程式庫所提供的資訊愈詳細,工作解析至正確磁碟檔案的可能性就愈大。

備註

除了上述所列的參數,這項工作也會從 Task 類別繼承參數。 如需這些其他參數的清單及其說明,請參閱 Task 基底類別

COM DLL 無須在機器上註冊,此工作便能運作。

MSB4803 錯誤

如果您嘗試從 dotnet CLI 命令執行使用 ResolveCOMReference 工作的專案,您會收到錯誤:

MSB4803: The task "ResolveComReference" is not supported on the .NET Core version of MSBuild. Please use the .NET Framework version of MSBuild.

MSBuild 的 .NET Core 版本不支援這項工作,這是當您從命令列執行 dotnet build 命令時所使用的工作。 嘗試從 Visual Studio 開發人員命令提示字元叫用 MSBuild.exe 來建置專案,因為這會使用 MSBuild 的 .NET Framework 版本。

另請參閱