未使用自定义 nuget 包添加程序集引用

Assembly reference not being added with custom nuget package

我有两个 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>

第二个项目仅适用于 .NET4.6,因为我使用的是此版本附带的一些特定于框架的功能。我尝试安装包的目标项目也是.NET4.6项目。

已验证:

没关系,我修好了。

问题出在 packages.config 的内容上。我最初将目标项目创建为 .NET4.5 项目并下载了 .NET4.6 nuget 包,这导致未添加程序集引用。在我发现我的错误后,我切换到 .NET4.6 作为项目平台并手动调整 packages.config 中的包版本,但不知何故 VS 记住了那个设置所以它没有改变任何东西。只有在我从 package.config 中完全删除每个包并重新安装它们之后,它才神奇地开始工作。诡异的。 :)