簡體   English   中英

在Nuget包C#項目中發現和使用lib文件夾時出現問題

[英]Issue finding and using lib folder in Nuget package C# project

我正在創建一個示例Nuget包,以測試創建用於我的另一個項目的內部Nuget包的過程。 我的最終目標是創建一個簡單的Nuget程序包,可以將該程序包安裝到另一個簡單的C#項目中並進行測試。

我一直在遵循Microsoft教程來使用VS創建和發布程序包: https : //docs.microsoft.com/zh-cn/nuget/quickstart/create-and-publish-a-package-using-visual-studio-網絡框架

我在nuget.org上成功創建並發布了名為MyNugetPackage程序包,並嘗試將其安裝到我的另一個名為TestingMyNugetPackage C#項目中。 我在NuGet軟件包控制台中收到一個錯誤,指出:

軟件包不支持任何目標框架

該錯誤是有道理的,因為我已經閱讀了有關支持多個.NET版本並在lib文件夾下指定版本的信息,並且在創建程序包時絕對沒有這樣做: https : //docs.microsoft.com/zh-cn/ nuget /創建包/支持多個目標框架

lib文件夾的想法對我來說很有意義,我想我知道如何向其中添加目標.NET版本。 但是, 我在任何地方都找不到此文件夾 它不在C#項目目錄中的任何位置。 我認為可能需要自己創建它,但是我不確定將其放置在何處。

我已經讀過許多關於此主題的教程和SO問題,它們都在談論如何使用lib文件夾,但是沒有人說它在哪里。 我是一個完整的初學者,我知道這里缺少明顯的東西,但是我不確定它是什么。

編輯 :我確實嘗試將我的.nupkg文件更改為.zip文件並提取內容以嘗試查看lib文件夾。 這確實提取了內容,但是在擴展整個項目樹並搜索lib之后,我沒有看到任何lib文件夾。

這是我的C#解決方案樹的快速布局:

名為MyNugetPackage解決方案,其中包含MyNugetPackage.sln文件, MyNugetPackage.csproj文件以及簡單的Logger.cs類, Logger.cs僅具有public void Print(string text) { Console.WriteLine(text); } 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” “ 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM