我创建了一个仅包含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
文件夹(