是否可以使用NuGet分发COM DLL?
我将如何设置包装?
我在想可以将DLL放在Tools目录中,然后运行安装后脚本来注册该库,但是我对PowerShell的掌握不是很好。
是否有在线示例,说明如何做到这一点(如果可能)?
最佳答案
当我遇到类似的问题时,我使用以下结构创建了一个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。
关于visual-studio - NuGet可以分发COM dll吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6037222/