ResolveComReference 工作
取得一或多個類型程式庫名稱或 .tlb 檔案的清單,並將那些類型程式庫解析至磁碟上的位置。
參數
下表說明 ResolveCOMReference
工作的參數。
參數 | 描述 |
---|---|
DelaySign |
選擇性的 Boolean 參數。如為 true ,則將公開金鑰放在組件中。 如為 false ,則完整簽署組件。 |
EnvironmentVariables |
選擇性的 String[] 參數。環境變數組陣列,以等號分隔。 這些變數是在規則環境區塊以外傳遞至繁衍的 tlbimp.exe 和 aximp.exe,或選擇性地覆寫。 |
ExecuteAsTool |
選擇性的 Boolean 參數。如果為 true ,會從適當目標 Framework 跨處理序執行 tlbimp.exe 和 aximp.exe,以產生必要的包裝函式組件。 此參數會啟用多目標。 |
IncludeVersionInInteropName |
選擇性的 Boolean 參數。如為 true ,則包裝函式名稱會包含 TypeLib 版本。 預設值為 false 。 |
KeyContainer |
選擇性的 String 參數。指定持有公開/私密金鑰組的容器。 |
KeyFile |
選擇性的 String 參數。指定包含公開/私密金鑰組的項目。 |
NoClassMembers |
選擇性的 Boolean 參數。 |
ResolvedAssemblyReferences |
選擇性的 ITaskItem[] 輸出參數。指定已解析的組件參考。 |
ResolvedFiles |
選擇性的 ITaskItem[] 輸出參數。指定磁碟上的完整檔案,這個磁碟對應至已提供作為這項工作輸入之類型程式庫的實體位置。 |
ResolvedModules |
選擇性的 ITaskItem[] 參數。 |
SdkToolsPath |
選擇性的 System.String 參數。 如果 ExecuteAsTool 是 true ,則此參數必須設定為目標 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 :當您不確定 Primary 或 TLBImp 是否適當時,請使用這個包裝函式工具。 會先套用 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 版本。