可以将COMReference完全迁移到PackageReference吗?

时间:2019-02-12 12:32:25

标签: c# .net reference com nuget

我正在尝试摆脱自己在解决方案中拥有的lib文件夹,将dll迁移到nuget,还从Packages.config切换到Packagereference。 对于大多数dll来说效果很好。

但是现在我有一些COM参考资料,我不确定我要执行的操作是否正确。 在.csproj中看起来像这样:

<COMReference Include="MyLib">
  <Guid>{ABCDEFA1-AD1F-AFBE-ACED-AFDF123AADEE}</Guid>
  <VersionMajor>X</VersionMajor>
  <VersionMinor>Y</VersionMinor>
  <Lcid>0</Lcid>
  <WrapperTool>tlbimp</WrapperTool>
  <Isolated>False</Isolated>
  <EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>

作为预构建事件,我有

<PreBuildEvent>
    regsvr32 /s $(SolutionDir)Lib\MyLib.dll
</PreBuildEvent>

现在我很生气,因为我读了这个article,它告诉我通过nuget包中的ReferencePath添加EmbedInteropTypes.targets

但是我没有使它起作用(或者就我而言,这似乎还不够(查看GUID中引用的COMReference))

所以这让我开始思考,也许我根本不需要将其转换为Packagereference,而只需添加一个(包括“ MyLib”),使prebuild-event与我的packages-folder中的dll冲突,保持COMReference不变。

现在,我刚刚将我需要的库添加到要在content\x86下提取的nuget包中,并修改了prebuild-event使其指向$([MSBuild]::EnsureTrailingSlash('$(NugetPackageRoot)'))

这似乎可行,可以构建,到目前为止,我没有运行时错误,但是我不确定这是最佳实践还是缺少什​​么,任何指针都将不胜感激。

0 个答案:

没有答案