[英]How to get NuGet options in Visual Studio 2017 Community?
我正在努力創建NuGet軟件包。 我正在使用Visual Studio 2017社區版。
我已經看過幾個視頻,這些視頻在“解決方案資源管理器”中右鍵單擊項目時在菜單上顯示“打包”選項。 但是,我沒有那個選擇。 這是Visual Studio其他(非社區)版本中的功能之一嗎? 我相信我也曾在某處提到過“在構建時創建NuGet軟件包”選項。 我也找不到。
我已經嘗試了從命令行使用nuget,dotnet和msbuild的各種方法,但是並沒有取得太大的成功。 非常沮喪。
任何幫助表示贊賞。
dotnet / msbuild包僅適用於SDK樣式的項目,但我認為適用於所有版本的Visual Studio以及命令行。 .NET Core引入了這些SDK樣式的項目,可以通過<Project Sdk="Microsoft.NET.Sdk">
進行標識。 如果您的項目(如果為C#項目, Sdk
.csproj
)不具有Sdk
屬性或不通過其他兩種方式導入Microsoft.NET.Sdk
,則它不是SDK樣式的項目,因此不支持打包。 兩種項目樣式之間的另一個明顯區別是,SDK項目距離新項目模板只有幾行,並且不在項目中列出文件,而舊樣式項目通常是全屏的,即使是新項目也是如此。模板只有一個類文件,並且確實列出了項目中的單個文件。 如果要繼續使用此項目類型,則需要使用nuget.exe pack
並且可能需要創建一個.nuspec
文件來定義某些包元數據。
但是,使用SDK樣式的項目是未來,所有Microsoft現有項目類型的遷移都需要時間。 它使用起來要簡單得多,因此我個人會避免使用老式項目,除非您使用的項目類型(例如ASP.NET,而不是ASP.NET Core)不支持它。
所有這一切都使.NET生態系統新手感到困惑。 我的建議是1.安裝Visual Studio時,在選擇工作負載時,請確保在組件列表中選擇了.NET Core,無論安裝時是否有可用的.NET Core最新版本。 在Visual Studio中創建新項目時,請始終選擇任何新項目模板的.NET Core版本或.NET Standard版本,即使您要定位(Windows).NET Framework,在這種情況下,您也要編輯.csproj
並將<TargetFramework>netstandard2.0</TargetFramework>
更改為<TargetFramework>net45</TargetFramework>
,盡管我建議通過添加元素名稱並使用分號分隔的列表來實現多目標: <TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
。 因此,請避免使用“類庫(.NET Framework)”模板,而應使用“類庫(.NET Standard)”,然后根據需要更改目標。
@zivkan帶我走了正確的路。 從.Net Framework將我的項目類型更改為.Net Core,使我在原始帖子中提到的所有選項都可用。 無需擴展。
我的.Net Core類庫項目現在在項目的上下文菜單上具有“打包”和“發布”選項。 此外,項目屬性頁面上還有另一個選項卡(包)。 在該頁面上,有一個“在生成時生成NuGet軟件包”選項,以及版本,名稱,標簽和其他屬性。
我已經做了很多.Net框架開發,但是一直忽略.Net Core和更新的選項。 我想我需要深入了解它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.