gpt4 book ai didi

dll - 在哪里放置非托管库的 dll?

转载 作者:行者123 更新时间:2023-12-03 11:20:26 29 4
gpt4 key购买 nike

我正在尝试为依赖于 ghostscript 的库创建 Nuget 包,因此引用 gsdll32.dll - 一个非托管库。我不能只包含一个标准的 dll 引用。我应该把它放在 nuget 目录结构中的什么位置?

最佳答案

添加 build文件夹到包,如果包例如具有 ID MyPackage , 添加一个名为 MyPackage.targets 的 MSBuild 目标文件到这个文件夹。重要的是 .targets文件与 .nuspec 同名文件。在 .nuspec文件你必须有这样的部分:

<files>
<file src="lib\*.*" target="lib" />
<file src="build\MyPackage.targets" target="build" />
</files>

这将在项目文件中添加一个指向 .targets 的 MSBuild 元素。文件。

此外,要仅注册托管 dll,请添加如下所示的部分:
<references>
<reference file="MyManaged.dll" />
</references>
.targets文件应如下所示:
<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="CopyMyPackageFiles" AfterTargets="AfterBuild">
<ItemGroup>
<MyPackageFiles Include="$(MSBuildThisFileDirectory)..\lib\*.*"/>
</ItemGroup>
<Copy SourceFiles="@(MyPackageFiles)" DestinationFolder="$(OutputPath)" >
</Copy>
</Target>
</Project>

现在, 全部 文件 - 包括非托管文件 - 将在构建后复制到项目输出文件夹(例如\bin\debug)。

关于dll - 在哪里放置非托管库的 dll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10198428/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com