共用方式為


ResolveComReference task

取得一或多個類型連結庫名稱或 .tlb 檔案的清單,並將這些類型連結庫解析為磁碟上的位置。

Parameters

下表描述 ResolveCOMReference 工作的參數。

Parameter Description
DelaySign 選擇性 Boolean 參數。

如果 true為 ,則會將公鑰放在元件中。 如果 false為 ,請完整簽署元件。
EnvironmentVariables 選擇性 String[] 參數。

以等號分隔的環境變數組數位。 除了一般環境區塊之外,這些變數會傳遞至繁衍 tlbimp.exeaximp.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 參數。

如果 ExecuteAsTooltrue,此參數必須設定為目標架構版本的 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:當您不確定 PrimaryTLBImp 是否適當時,請使用這個包裝函式工具。 邏輯 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。