【问题标题】:What kind of project type is this?这是一个什么样的项目类型?
【发布时间】:2017-09-17 04:55:28
【问题描述】:

上下文

我安装了一个解决方案模板(Exrin 移动应用程序),并且在解决方案资源管理器中显示为 ...(便携式)的项目类型中有项目类型,但是当我在目标设置中转到项目 /Properties/Library 时,我看到了 .NET Standard而不是通常的多个目标和 [Change] 按钮来选择复选框。

问题

所以它似乎是一个混合体,既不是 PCL 库,也不是 .NET 标准库。这是 .csproj 文件中的一些 hack,还是我如何使用 VS 2017.3 内置项目模板创建此类项目?

(请注意:问题不在于什么是 .NET Standard,以及为什么推荐它而不是 PCL)

目标过去显示为:

,而不是“普通”PCL

【问题讨论】:

  • 不知道内置项目类型。但我认为您可以复制 csproj 文件并将其用作模板。
  • 是的,我已经做到了。我的问题不是实际问题,只是想了解它是什么动物......
  • .csproj 中的ProjectTypeGuids 值是什么?
  • {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
  • 786C830F.... 是普通的可移植类库,FA‌​E04EC0.... 是 C# 语言,因此是基于 C# PCL 的项目。因此,从您的屏幕截图来看,它似乎是一个 PCL 项目,该项目已转换为 NetStd,因此旧样式 .csproj 但带有 project.jsonproject.config 的项目。欢迎来到混合 NetStd 项目的陌生之地。

标签: visual-studio xamarin portable-class-library .net-standard


【解决方案1】:

它似乎是一个普通的可移植类库项目,已针对 .NET Standard 进行了编辑。这种格式应该可以在 Visual Studio 2015 Update 3 及更高版本中使用,尽管它从未公开宣布或在模板中使用,因为它主要是一种能够使用 MSBuild 而不是 project.json 构建 .NET Standard 和 .NET Core 项目的 hacky 方式基于工具。

由于这不再是构建 .NET Core 和 .NET Standard 项目的方式,我建议不要尝试创建类似的项目。这还依赖于 NuGet 对基于 project.json 的依赖项的支持,在 UWP 从 project.json 切换到 csproj 内的 PackageReference 元素后,这些依赖项即将从 NuGet 中删除。

您可以在 CoreFX 文档 Using MSBuild to build .NET Core projects 中阅读有关此类项目的信息(这是在基于 MSBuild 工具的 .NET Core SDK 1.0 发布之前编写的,该文档是关于 .NET Core 应用程序的,但它对于 .NET Core 应用程序的工作方式类似。 NET 标准)

【讨论】:

  • 非常感谢您提供的详细信息。我有一种不好的预感,因为这是一个创新项目的绿地开始,我花时间去指点一个好的和未来的方向,结果项目类型有点不是那个方向。好吧,这么多令人困惑的并行事物,仅处理 NuGet 就是三种,packages.config、project.json 以及 .csproj、.csproj 中的 PackageReference 等等?然后是许多不同的项目类型、PCL 等,然后是目标......有什么建议可以使用库的项目类型/模板什么是 Xamarin.Forms 的常用代码?
  • Xamarin.Forms(和 UWP)即将添加 .NET Standard 支持,可用于 VS 2017 中的新 .NET Standard 项目类型blog.xamarin.com/building-xamarin-forms-apps-net-standard
猜你喜欢
  • 2021-04-28
  • 2014-12-20
  • 1970-01-01
  • 1970-01-01
  • 2017-04-21
  • 2014-08-18
  • 1970-01-01
  • 2015-06-21
  • 2020-09-10
相关资源
最近更新 更多