首页 > 解决方案 > 缺少程序集参考 - 确保 VS 为我的 nuget 包创建一个 .config 文件

问题描述

我创建了一个仅包含 1 个 .dll 的 nuget 包。

为了测试 .nupkg 的安装,我

问题是,如果我这样做:

using System;
using MyNamespace;

namespace tester
{
    class Program
    {
        static void Main(string[] args)
        {
            MyClass.MyStaticMethod()

            Console.WriteLine("Hello World!");
        }
    }
}

该行MyClass.MyStaticMethod()说我缺少程序集引用,并且using MyNamespace;是不必要的声明。

仔细阅读,这似乎源于我的 nuget 包安装到全局包位置:%Current_User%.nuget.\packages,并且 .csproj 文件包括:

  <ItemGroup>
    <PackageReference Include="MyPackage" Version="1.0.0" />
  </ItemGroup>

有没有办法可以确保我的包的所有消费者都创建一个 packages.config 文件,而不是将我的包安装到全局包位置?

我可以在某处的 .nuspec 文件中指定它吗?

标签: c#nugetpublishnuspec

解决方案


packages.config方式基本上是引用 NuGet 包的经典(阅读:“旧”)方式,并且已被PackageReference引用包的方式所取代。您应该确保您的软件包与PackageReference.

如果您每次构建包时不增加包的版本号并想在项目中试用它,则它不会看到更新。

使用 .增加版本或清除本地 NuGet 包缓存dotnet nuget locals clear all

如果 DLL 仍未被引用(检查 VS 在解决方案资源管理器中显示的依赖项节点),那么您的包可能未在预期位置包含 DLL(例如lib\netstandard2.0,如果您的源项目是 .NET Standard 2.0 库的文件夹)


推荐阅读