gpt4 book ai didi

项目属性中缺少包选项卡

转载 作者:行者123 更新时间:2023-12-05 04:52:27 25 4
gpt4 key购买 nike

尝试创建 nuget 包以上传到我们自己的 nuget 服务器,并希望消除创建和编辑 nugspec 文件的手动过程。我读过的所有内容都说可以从项目文件中提取设置(如果使用包引用)。并且设置存在于项目属性窗口的“包”选项卡上。但是该选项卡不存在。

使用vs 2019,.NetFramework 4.7.2,project是一个library,已经迁移到package reference。我选择了一个现有项目,右键单击引用,然后使用迁移选项。包选项卡不存在

我还将 nuget 包管理器默认设置为 packageReference,并创建了一个新的类库。包选项卡也不存在

所需的包(当使用带有包引用的非 SDK 样式时)nuget.build.tasks.pack 已被添加到两个项目的引用中提及

任何帮助将不胜感激

最佳答案

包选项卡仅适用于 SDK 样式项目。非 SDK 样式项目在 Visual Studio 中使用不同的项目系统,其中不包含该项目属性选项卡。新的项目系统(on github,旧的是封闭源代码的)最初看起来与旧的项目系统一样,但慢慢地它们发生了分歧。 Solution Explorer 中的 Reference/Dependencies 节点就是一个明显的例子,项目属性窗口中的 Package 选项卡也是如此。

要创建 pack 使用的 MSBuild 属性,您需要手动将项目文件编辑为 XML。在 Visual Studio 中,您需要右键单击解决方案资源管理器中的项目,选择“卸载项目”,现在当您单击该项目,或右键单击并选择编辑时,您将看到项目 XML。完成后,再次右键单击该项目并选择重新加载项目。或者,使用 Visual Studio 之外的文本或 XML 编辑器对其进行编辑,Visual Studio 将检测到更改并在您按 alt-tab 返回时提示您重新加载项目。

不过,我的建议是将您的非 SDK 样式项目转换为 SDK 样式项目。 “标准”类库项目工作正常,并且我不知道有任何缺点(除非您团队中的某些开发人员仍在使用 Visual Studio 2015 或更早版本),因为非 SDK 样式项目已经在使用 PackageReference。在 SDK 样式项目中以 .NET Framework 为目标时,某些其他项目类型可能具有有限的 Visual Studio 体验。其他项目类型可能与 SDK 样式项目根本不兼容。但是,大多数创建 NuGet 包的人都是使用标准类库项目这样做的,这应该没有任何问题。

有一个“不受支持”的工具try-convert将非 SDK 样式项目转换为 SDK 样式。就个人而言,我只是删除 csproj,创建一个空目录,运行 dotnet new classlib在控制台上,将 csproj 移动到我现有项目的目录,重命名项目文件,然后删除该临时/空目录。如果你有除.cs以外的任何东西项目中的文件需要在 csproj 中显式输入,如果您熟悉 msbuild,请手动编辑 csproj,否则在 Visual Studio 中加载项目并使用“解决方案资源管理器”和“属性”窗口。

有些人认为 SDK 样式项目仅适用于 .NET Core 或 .NET Standard。事实并非如此,但不幸的是,Visual Studio 新项目模板给人以这种印象。您将需要创建面向 .NET 5、.NET Standard 或 .NET Core 的类库项目。但是一旦创建了 csproj,编辑 csproj(使用 SDK 样式项目不再需要卸载项目)并更改 <TargetFramework>net5.0</TargetFramework><TargetFramework>net472</TargetFramework> . SDK 样式项目的另一个优点是它很容易实现多目标,这是一种将项目慢慢现代化为更新的运行时的有用技术。添加 s添加到 XML 元素名称以使其成为复数形式,并添加额外的目标框架作为分号分隔列表 <TargetFrameworks>net472;net5.0</TargetFrameworks> .在 TargetFramework 之间切换时和 TargetFrameworks ,Visual Studio 应该会提示你重新加载项目,但我发现它仍然存在一些问题。所以我建议关闭解决方案并再次打开它,然后一切都会正常运行。

关于项目属性中缺少包选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66498309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com