【问题标题】:Assembly reference not being added with custom nuget package未使用自定义 nuget 包添加程序集引用
【发布时间】:2015-08-27 08:13:37
【问题描述】:

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

已验证:

  • 目标项目是.NET4.6
  • 可以正确创建包
  • 程序集位于lib\ 文件夹中
  • 程序集被正确打包
  • Nuget 包已正确安装
  • 使用正确的框架版本输入packages.config

【问题讨论】:

    标签: c# .net visual-studio nuget nuget-package


    【解决方案1】:

    没关系,我修好了。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-13
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      相关资源
      最近更新 更多