gpt4 book ai didi

带有不在 lib 子文件夹中的程序集的 NuGet 引用规范

转载 作者:行者123 更新时间:2023-12-04 15:21:50 27 4
gpt4 key购买 nike

我有一个相当复杂的大型项目,我想尝试将其打包为 nuget 包以供内部使用。我想避免复制文件,因为有很多(150 MB+ 的二进制文件)。相反,我尝试使用 <file ...> 将包蓝图文件指向文件。元素。这是我可以重现我的问题的文件的简化版本:

<?xml version="1.0"?>
<package >
<metadata>
<id>AgentCore</id>
<version>6.1.0</version>
<authors>kkm</authors>
<description>AgentCore</description>
<references>
<reference file="Utils.dll" />
</references>
</metadata>
<files>
<file src="Kigo\bin\Release\Utils.dll" target="/lib/net40"/>
</files>
</package>

无论我尝试什么,我都会收到错误消息:

Invalid assembly reference 'utils.dll'. Ensure that a file named 'utils.dll' exists in the lib directory.



我尝试了来自 this answer 的建议,但无济于事。

是否可以避免物理布局目录,如 NuGet documentation 中所述,并改用文件引用?

最佳答案

问题出在 target= <file ...>的目录元素。它不得包含前导 / , 一世。 e.应该包含一个相对路径。前导斜杠不会改变包布局,但显然会混淆 NuGet 中的引用评估设备。上述规范中正确的一行应该是

    <file src="Kigo\bin\Release\Utils.dll" target="lib/net40"/>

通配符也有效(这是我的初衷):
    <file src="Kigo\bin\Release\*.*" target="lib/net40"/>

使用通配符规范, <reference=...>正确接受通过通配符扩展打包的任何二进制文件。

关于带有不在 lib 子文件夹中的程序集的 NuGet 引用规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27914367/

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