NuGet:在哪里放置非托管图书馆的dll?

前端之家收集整理的这篇文章主要介绍了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.

原文链接:https://www.f2er.com/windows/370596.html

猜你在找的Windows相关文章