TFS Build server and COM references - does this work?

后端 未结 2 613
独厮守ぢ
独厮守ぢ 2020-12-03 19:37

On my Developer PC i have registered the according dll´s and referenced them. (Add reference -> COM) On the TFS build server this of course causes errors since the reference

相关标签:
2条回答
  • 2020-12-03 20:07

    OK, the answer was more easy than one might think. Just use "tlbimp.exe" to create an according intrerop.dll which you include in your project and reference to this dll instead to the COM objects.

    You may save the time using tlbimp.exe because Visual Studio creates this dll automatically when you reference a COM object. But it does not upload it to TFS. So finally I just used the automatically created dll and the TFS build Server was happy.

    One may find the automatically created Interop dll in: "ProjectFolder\obj\x86\Development"

    0 讨论(0)
  • 2020-12-03 20:20

    Using tlbimp.exe directly is not necessary. Try replacing any <COMReference> items in the project file with <COMFileReference>. An example would look like this:

    <ItemGroup>
       <COMFileReference Include="MyComLibrary.dll">
         <EmbedInteropTypes>True</EmbedInteropTypes>
       </COMFileReference>
    </ItemGroup>
    

    The COM dll doesn't need to be registered on the machine for this to work.

    Each COMFileReference item can also have a WrapperTool attribute but the default seems to work fine. The EmbedInteropTypes attribute is not documented as being applicable to COMFileReference, but it seems to work as intended.

    See https://docs.microsoft.com/en-ca/visualstudio/msbuild/common-msbuild-project-items#comfilereference for a little more detail. This MSBuild item has been available since .NET 3.5.

    0 讨论(0)
提交回复
热议问题