我试图创建一个依赖于ghostscript的库的Nuget包,因此引用gsdll32.dll – 一个非托管库.我不能只包括一个标准的dll参考.我在哪里把它放在nuget目录结构中?
上述参考可以工作,但它实际上修改了您的post build事件来推送文件,如果您有这种情况,可能无法实际解决您的问题.
原文链接:https://www.f2er.com/windows/370596.html我们遇到的问题是依赖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.