在Nuget软件包C#项目中查找和使用lib文件夹

问题描述 投票:1回答:1

我正在创建示例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,并尝试将其安装到名为TestingMyNugetPackageother 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框架参考,并成功安装我的软件包吗?

c# visual-studio nuget
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.