取得一或多個類型連結庫名稱或 .tlb 檔案的清單,並將這些類型連結庫解析為磁碟上的位置。
Parameters
下表描述 ResolveCOMReference 工作的參數。
| Parameter | Description |
|---|---|
DelaySign |
選擇性 Boolean 參數。如果 true為 ,則會將公鑰放在元件中。 如果 false為 ,請完整簽署元件。 |
EnvironmentVariables |
選擇性 String[] 參數。以等號分隔的環境變數組數位。 除了一般環境區塊之外,這些變數會傳遞至繁衍 tlbimp.exe 和 aximp.exe 。 |
ExecuteAsTool |
選擇性 Boolean 參數。如果 true,請從適當的目標架構執行 tlbimp.exe,並從程式外 aximp.exe,以產生必要的包裝函式元件。 此參數會啟用多重目標。 |
IncludeVersionInInteropName |
選擇性 Boolean 參數。如果 true為 ,則類型庫版本會包含在包裝函式名稱中。 預設值為 false。 |
KeyContainer |
選擇性 String 參數。指定保存公開/私鑰組的容器。 |
KeyFile |
選擇性 String 參數。指定包含公開/私鑰組的專案。 |
NoClassMembers |
選擇性 Boolean 參數。 |
ResolvedAssemblyReferences |
選擇性 ITaskItem[] 輸出參數。指定解析的元件參考。 |
ResolvedFiles |
選擇性 ITaskItem[] 輸出參數。指定磁碟上的完整檔案,這些檔案會對應至提供做為此工作輸入之類型連結庫的實體位置。 |
ResolvedModules |
選擇性 ITaskItem[]參數。 |
SdkToolsPath |
選擇性 System.String 參數。 如果 ExecuteAsTool 為 true,此參數必須設定為目標架構版本的 SDK 工具路徑。 |
StateFile |
選擇性 String 參數。指定 COM 元件時間戳的快取檔案。 如果沒有,每次執行都會重新產生所有包裝函式。 |
TargetFrameworkVersion |
選擇性 String 參數。指定項目目標 Framework 版本。 預設值為 String.Empty。 這表示沒有根據目標架構的參考篩選。 |
TargetProcessorArchitecture |
選擇性 String 參數。指定慣用的目標處理器架構。 在翻譯後傳遞至 tlbimp.exe/machine 旗標。 參數值應該是的成員 ProcessorArchitecture。 |
TypeLibFiles |
選擇性 ITaskItem[] 參數。指定 COM 參考的類型連結庫檔案路徑。 此參數中包含的專案可能包含專案元數據。 如需詳細資訊,請參閱 TypeLibFiles 專案元數據一節。 |
TypeLibNames |
選擇性 ITaskItem[] 參數。指定要解析的類型連結庫名稱。 此參數中包含的項目必須包含一些項目元數據。 如需詳細資訊,請參閱 TypeLibNames 專案元數據一節。 |
WrapperOutputDirectory |
選擇性 String 參數。放置所產生 Interop 元件的磁碟位置。 如果未指定此項目元數據,工作會使用項目檔所在目錄的絕對路徑。 |
TypeLibNames 項目元數據
下表描述傳遞至 TypeLibNames 參數之專案可用的項目元數據。
| Metadata | Description |
|---|---|
GUID |
必要的項目元數據。 類型連結庫的 GUID。 如果未指定此項目元數據,工作就會失敗。 |
VersionMajor |
必要的項目元數據。 類型程式庫的主要版本。 如果未指定此項目元數據,工作就會失敗。 |
VersionMinor |
必要的項目元數據。 類型程式庫的次要版本。 如果未指定此項目元數據,工作就會失敗。 |
EmbedInteropTypes |
選擇性 Boolean 元數據。如果 true為 ,請將這個參考中的 Interop 類型直接內嵌到元件中,而不是產生 Interop DLL。 |
LocaleIdentifier |
選擇性項目元數據。 類型連結庫的地區設定標識碼 (或 LCID)。 此標識元會指定為32位值,用來識別使用者、區域或應用程式慣用的人類語言。 如果未指定此項目元數據,工作會使用預設地區設定標識碼 “0”。 |
WrapperTool |
選擇性項目元數據。 指定用來產生這個類型連結庫之元件包裝函式的包裝函式工具。 如果未指定此項目元數據,工作會使用默認包裝函式工具 「tlbimp」。類型連結庫的可用大小寫不區分大小寫的選擇如下: - Primary:當您想要針對 COM 元件使用已產生的主要 Interop 元件時,請使用這個包裝函式工具。 當您使用此包裝函式工具時,請勿指定包裝函式輸出目錄,因為這會導致工作失敗。- TLBImp:當您想要產生 COM 元件的 Interop 元件時,請使用這個包裝函式工具。- PrimaryOrTLBImp:當您不確定 Primary 或 TLBImp 是否適當時,請使用這個包裝函式工具。 邏輯 Primary 會先套用,然後 TLBImp套用 。- AXImp:當您想要產生 ActiveX 控制件的 Interop 元件時,請使用這個包裝函式工具。 |
TypeLibFiles 項目元數據
下表描述傳遞至 TypeLibFiles 參數之專案可用的項目元數據。
| Metadata | Description |
|---|---|
EmbedInteropTypes |
選擇性 Boolean 參數。如果 true為 ,請將這個參考中的 Interop 類型直接內嵌到元件中,而不是產生 Interop DLL。 |
WrapperTool |
選擇性項目元數據。 指定用來產生這個類型連結庫之元件包裝函式的包裝函式工具。 如果未指定此項目元數據,工作會使用默認包裝函式工具 「tlbimp」。類型連結庫的可用大小寫不區分大小寫的選擇如下: - Primary:當您想要針對 COM 元件使用已產生的主要 Interop 元件時,請使用這個包裝函式工具。 當您使用此包裝函式工具時,請勿指定包裝函式輸出目錄,因為這會導致工作失敗。- TLBImp:當您想要產生 COM 元件的 Interop 元件時,請使用這個包裝函式工具。- AXImp:當您想要產生 ActiveX 控制件的 Interop 元件時,請使用這個包裝函式工具。 |
Note
您提供以唯一識別類型庫的詳細資訊,工作解析為磁碟上正確檔案的可能性就越大。
Remarks
除了本文所列的參數之外,此工作也會從 Task 類別繼承參數。 如需這些其他參數及其描述的清單,請參閱 Task 基類。
COM DLL 不需要在機器上註冊,此工作才能運作。
MSB4803 Error
如果您嘗試從 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 來建置專案,因為此可執行檔會使用 .NET Framework 版本的 MSBuild。