【发布时间】:2011-08-27 14:10:40
【问题描述】:
是否可以使用 NuGet 分发 COM DLL?
我将如何设置软件包?
我想我可以将 DLL 放在 Tools 目录中,然后运行安装后脚本来注册库,但我不太擅长 PowerShell。
是否有任何在线示例说明如何执行此操作(如果可能)?
【问题讨论】:
标签: visual-studio com nuget
是否可以使用 NuGet 分发 COM DLL?
我将如何设置软件包?
我想我可以将 DLL 放在 Tools 目录中,然后运行安装后脚本来注册库,但我不太擅长 PowerShell。
是否有任何在线示例说明如何执行此操作(如果可能)?
【问题讨论】:
标签: visual-studio com nuget
当我遇到类似问题时,我创建了一个具有以下结构的 NuGet 包。
MYCOMLib.dll 是从 mycom.dll 与 Type Library Importer (tlbimp.exe) 生成的互操作 DLL。 只需使用以下命令即可完成:
Tlbimp mycom.dll
install.ps1 包含以下代码:
param($installPath, $toolsPath, $package, $project)
regsvr32 Join-Path $toolsPath '\mycom.dll' /s
$project.Object.References | Where-Object { $_.Name -eq "MYCOMLib" } | ForEach-Object { $_.EmbedInteropTypes = $false }
此脚本的作用是注册 COM dll 并将引用的 EmbedInteropTypes 属性设置为 false,这在使用 .NET 4 时是必需的。有关详细信息,请参阅Interop type cannot be embedded。
【讨论】: