NuGet:在哪里放置非托管图书馆的dll?
发布时间:2020-12-13 19:54:39 所属栏目:Windows 来源:网络整理
导读:我试图创建一个依赖于ghostscript的库的Nuget包,因此引用gsdll32.dll – 一个非托管库.我不能只包括一个标准的dll参考.我在哪里把它放在nuget目录结构中? 上述参考可以工作,但它实际上修改了您的post build事件来推送文件,如果您有这种情况,可能无法实际解
我试图创建一个依赖于ghostscript的库的Nuget包,因此引用gsdll32.dll – 一个非托管库.我不能只包括一个标准的dll参考.我在哪里把它放在nuget目录结构中?
上述参考可以工作,但它实际上修改了您的post build事件来推送文件,如果您有这种情况,可能无法实际解决您的问题.
我们遇到的问题是依赖DLL无法注册,但必须与另一个DLL并行存在,需要由nuget注册,因此需要存在于lib目录中,但不能注册. nuspec参考现在允许您指定lib目录中的哪些DLL在visual studio项目中明确注册,您只需要在元数据区域中的nuspec文件中添加一个显式引用列表(如果这不存在默认行为的nuget是尝试注册lib下的所有内容). 这是一个我的意思的例子nuspec文件: <?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>SomePackageID</id> <version>1.0.1</version> <title>Some Package Title</title> <authors>Some Authors</authors> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>Blah blah blah.</description> <references> <reference file="ceTe.DynamicPDF.Rasterizer.20.x86.dll" /> </references> </metadata> <files> <file src="SomeNetworkLocationceTe.DynamicPDF.Rasterizer.20.x86.dll" target="libceTe.DynamicPDF.Rasterizer.20.x86.dll" /> <file src="SomeNetworkLocationDPDFRast.x86.dll" target="libDPDFRast.x86.dll" /> </files> </package> 您可以看到,ceTe.DynamicPDF.Rasterizer.20.x86.dll需要注册,但DPDFRast.x86.dll只需要存在于该目录中以支持其他DLL,并且不会被注册,但通过一些动态引用魔术将最终被复制到目标bin目录,因为visual studio看到第一个DLL依赖于第二个DLL. 这是原来的nuspec reference. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Win7安装Oracle10 无法定位程序输入点GetProcessImageFileN
- active-directory – Windows Server 2012迁移(DNS / AD DS
- windows – Delphi交叉编译器为linux
- Microsoft .NET Framework多个远程代码执行漏洞(MS09-061)
- DOS标头中的e_cblp和e_cp是什么?
- 如何在Windows 7中使一个服务依赖于另一个服务?
- phpstudy后门利用
- windows – 为什么我的用户的下载在IE中随机停止?
- 关闭Windows Defender保护
- 为什么Windows为其系统地址空间预留1Gb(或2 Gb)?