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

程序集不在lib子文件夹中的NuGet引用规范,nuget,nuget-spec,Nuget,Nuget Spec,我有一个相当复杂和大型的项目,我想尝试将其打包为一个nuget包供内部使用。我希望避免复制文件,因为有很多(150 MB以上的二进制文件)。相反,我尝试使用元素将包蓝图文件指向这些文件。以下是该文件的简化版本,我可以用它重现我的问题: <?xml version="1.0"?> <package > <metadata> <id>AgentCore</id> <version>6.1.0</vers

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

<?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>

代理核心
6.1.0
,但无济于事


是否可以避免如中所述以物理方式布置目录,而改用文件引用?

问题出在
元素的
target=
目录中。它不能包含前导的
/
,即。E应包含相对路径。前导斜杠不会改变包布局,但显然会混淆NuGet中的参考评估设备。以上规范中的正确行应为

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

通配符也起作用(这是我的初衷):


使用通配符规范,
可以正确地接受通过通配符扩展打包的任何二进制文件

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