NuGet:在哪里放置非托管图书馆的dll?
我试图创建一个依赖于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="\\SomeNetworkLocation\ceTe.DynamicPDF.Rasterizer.20.x86.dll" target="lib\ceTe.DynamicPDF.Rasterizer.20.x86.dll" /> <file src="\\SomeNetworkLocation\DPDFRast.x86.dll" target="lib\DPDFRast.x86.dll" /> </files> </package> 您可以看到,ceTe.DynamicPDF.Rasterizer.20.x86.dll需要注册,但DPDFRast.x86.dll只需要存在于该目录中以支持其他DLL,并且不会被注册,但通过一些动态引用魔术将最终被复制到目标bin目录,因为visual studio看到第一个DLL依赖于第二个DLL. 这是原来的nuspec reference. (编辑:ASP站长网) |