繁体   English   中英

如何在Visual Studio 2017社区中获取NuGet选项?

[英]How to get NuGet options in Visual Studio 2017 Community?

我正在努力创建NuGet软件包。 我正在使用Visual Studio 2017社区版。

我已经看过几个视频,这些视频在“解决方案资源管理器”中右键单击项目时在菜单上显示“打包”选项。 但是,我没有那个选择。 这是Visual Studio其他(非社区)版本中的功能之一吗? 我相信我也曾在某处提到过“在构建时创建NuGet软件包”选项。 我也找不到。

我已经尝试了从命令行使用nuget,dotnet和msbuild的各种方法,但是并没有取得太大的成功。 非常沮丧。

任何帮助表示赞赏。

如果您真的想使用Visual Studio,我建议您安装一个扩展程序,以帮助您解决该问题。 例如, 这个 人们在视频中拥有的选项取决于他们安装的扩展程序。 对你来说,是一样的。

或者,只需使用此处解释的命令行工具或此处此处的 .NET Core。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM