缺少程序集引用-请确保VS为我的nuget包创建.config文件



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

测试.nupkg,I 的安装

  • 在VS中创建一个C#控制台应用程序
  • 添加指向我的包目录的本地提要
  • 从那里安装我的程序包
  • 开始在main中键入

问题是,如果我这样做:

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文件中指定吗?

packages.config方法基本上是引用NuGet包的经典(读作:"旧"(方法,此后被引用包的PackageReference方法取代。您应该确保您的软件包与PackageReference兼容。

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

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

如果DLL仍然没有被引用(请检查VS在解决方案资源管理器中显示的依赖项节点(,则您的包可能不会在预期位置包含DLL(例如,如果您的源项目是.NET Standard 2.0库,则为libnetstandard2.0文件夹(

最新更新