没有将程序集引用添加到自定义nuget包中

本文关键字:自定义 nuget 包中 添加 引用 程序集 | 更新日期: 2023-09-27 18:09:59

我有两个nuget包,其中一个依赖于另一个。当安装第二个时,第一个包中的程序集的程序集引用被正确地添加到项目引用中,但是我不知何故无法添加后者。我的规格有什么问题吗?

// first
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
    <metadata>
        <id>first</id>
        ...
    </metadata>
    <files>
        <file src="..'src'MyFirstProject'bin'v4.0'MyFirstProject.dll" target="lib'net40-client'MyFirstProject.dll" />
        <file src="..'src'MyFirstProject'bin'v4.0'MyFirstProject.xml" target="lib'net40-client'MyFirstProject.xml" />
        <file src="..'src'MyFirstProject'bin'v4.5'MyFirstProject.dll" target="lib'net45'MyFirstProject.dll" />
        <file src="..'src'MyFirstProject'bin'v4.5'MyFirstProject.xml" target="lib'net45'MyFirstProject.xml" />
        <file src="..'src'MyFirstProject'bin'v4.6'MyFirstProject.dll" target="lib'net46'MyFirstProject.dll" />
        <file src="..'src'MyFirstProject'bin'v4.6'MyFirstProject.xml" target="lib'net46'MyFirstProject.xml" />
    </files>
</package>
// second
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
    <metadata>
        <id>second</id>
        ...
        <dependencies>
            <dependency id="first" ...
        </dependencies
    </metadata>
    <files>
        <file src="..'src'MySecondProject'bin'v4.6'MySecondProject.dll" target="lib'net46'MySecondProject.dll" />
        <file src="..'src'MySecondProject'bin'v4.6'MySecondProject.xml" target="lib'net46'MySecondProject.xml" />
    </files>
</package>

第二个项目只适用于. net 4.6,因为我使用了这个版本附带的一些框架特定的特性。我试图安装包的目标项目也是一个. net 4.6项目。

验证:

  • 目标项目是.NET4.6
  • 包可以正确创建
  • 程序集驻留在lib'文件夹
  • 组件被正确打包
  • Nuget包正确安装
  • 使用正确的框架版本进入packages.config

没有将程序集引用添加到自定义nuget包中

没关系,我修好了。

问题在于packages.config的含量。我最初将目标项目创建为一个. net 4.5项目,并下载了. net 4.6 nuget包,这导致没有添加程序集引用。在我注意到我的错误之后,我切换到. net 4.6作为项目平台,并手动调整了packages.config中的软件包版本,但不知何故VS记住了该设置,因此它没有改变任何东西。只有在我完全从package.config中删除每个包并重新安装它们之后,它才神奇地开始工作。奇怪。:)