Dav*_*ton 10
不需要直接使用tlbimp.exe.尝试替换<COMReference>
项目文件中的任何项目<COMFileReference>
.一个例子看起来像这样:
<ItemGroup>
<COMFileReference Include="MyComLibrary.dll">
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMFileReference>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
COM dll无需在机器上注册即可使用.
每个COMFileReference项也可以有一个WrapperTool属性,但默认似乎工作正常.EmbedInteropTypes属性未记录为适用于COMFileReference,但它似乎按预期工作.
有关详细信息,请参阅https://docs.microsoft.com/en-ca/visualstudio/msbuild/common-msbuild-project-items#comfilereference.从.NET 3.5开始,此MSBuild项目已可用.
好吧,答案比人们想象的要简单。只需使用“tlbimp.exe”创建一个相应的 intrerop.dll,将其包含在项目中并引用此 dll 而不是 COM 对象。
使用 tlbimp.exe 可以节省时间,因为当您引用 COM 对象时,Visual Studio 会自动创建此 dll。但它不会将其上传到 TFS。所以最后我只使用了自动创建的 dll,TFS 构建服务器很高兴。
人们可以在“ProjectFolder\obj\x86\Development”中找到自动创建的 Interop dll
归档时间: |
|
查看次数: |
4628 次 |
最近记录: |