我正在创建示例Nuget包,以测试创建内部Nuget包以供我的另一个项目使用的过程。我的最终目标是创建一个简单的Nuget程序包,可以将该程序包安装到另一个简单的C#项目中并进行测试。
我一直遵循Microsoft教程来使用VS创建和发布程序包:https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package-using-visual-studio-net-framework
我在nuget.org上成功创建并发布了我的程序包,名为MyNugetPackage
,并尝试将其安装到名为TestingMyNugetPackage
的other C#项目中。我在NuGet软件包控制台中收到一条错误消息,指出:
程序包不支持任何目标框架
此错误是有道理的,因为我已经阅读了有关支持多个.NET
版本并在lib
文件夹下指定版本的信息,并且在创建程序包时肯定没有这样做:https://docs.microsoft.com/en-us/nuget/create-packages/supporting-multiple-target-frameworks
lib
文件夹的想法对我来说很有意义,我想我知道如何向其中添加目标.NET
版本。但是,我在任何地方都找不到此文件夹!它不在C#项目目录中的任何位置。我认为我可能需要自己创建它,但是我不确定将它放在哪里。
我已经阅读过有关此主题的许多教程和相关问题,都在谈论如何使用lib
文件夹,但是没有人说它在哪里。我是一个完整的初学者,我知道这里缺少明显的东西,但是我不确定它是什么。
这是我的C#解决方案树的快速布局:
具有MyNugetPackage
文件,MyNugetPackage.sln
文件和仅具有MyNugetPackage.csproj
方法的简单类Logger.cs
的标题为public void Print(string text) { Console.WriteLine(text); }
的解决方案:
MyNugetPackage
MyNugetPackage.csproj.1.0.0.nupkg
MyNugetPackage.nuspec
MyNugetPackage.sln
MyNugetPackage (folder)
bin (folder)
Debug (folder) -> .dll, .pdb
Release (folder) -> .dll, .pdb
obj (folder)
Debug (folder)
Release (folder)
Properties (folder)
AssemblyInfo.cs
Logger.cs
MyNugetPackage.csproj
有人可以将我定向到需要放置lib
文件夹的位置,以便可以添加受支持的.NET 4.7
框架参考,并成功安装我的软件包吗?
NuGet软件包(.nupkg)只是一个zip文件。如果您尝试查看此文件的内容,请像zip文件一样打开它(使用7zip或其他内容)。或者,将扩展名更改为zip。在软件包中,您将找到“ lib”文件夹以及.nuspec和软件包文件夹(以及其他内容)。但这是打包项目时生成的结果包,此处的更改不会对您的代码产生影响。
[如果您只是想针对一个或多个框架。在VS中,编辑您的项目文件(.csproj)。该文件是带有PropertyGroup的XML,该PropertyGroup包含“ TargetFramework” OR和“ TargetFrameworks”元素。要定位单个框架,请添加TargetFramework元素,要定位多个框架,请改用TragetFrameworks。
以单个.Net框架为目标:
<PropertyGroup>
<TargetFramework>net472</TargetFramework>
</PropertyGroup>
或者,您可以针对多个框架。
<PropertyGroup>
<TargetFrameworks>net472; netcoreapp3.0; netcoreapp2.1</TargetFrameworks>
</PropertyGroup>
这将针对.Net 4.7.2,.Net Core 3.0和.Net Core 2.1