所以我有一个 PCL 项目,但现在想更新它以支持 .Net Standard
我读过微软网站步骤 https://learn.microsoft.com/en-us/dotnet/core/porting/libraries#converting-a-pcl-project去做这个:
- 右键单击项目文件并选择属性。
- 在“库”下,选择“目标 .NET 平台标准”。
但最新版本的Visual Studio 2017中不存在这个按钮。
我也读过here https://oren.codes/2017/04/23/using-xamarin-forms-with-net-standard-vs-2017-edition/:
- 关闭VS中的解决方案
- 获取现有的 csproj 并复制一份
它在其他地方。我将在记事本中打开另一个副本。
- 复制/粘贴您创建的新项目的内容并替换
您现有项目的内容。你在旧时代拥有的大部分东西
项目不再需要了。您可能需要的是
设置,例如与不匹配的任何签名或程序集名称
文件夹名称/约定。如果您有设计时的 ResX 文件
生成的代码,您需要添加以下内容。同样,对于
Xamarin Forms 页面,您将需要这个。
但我不明白上面突出显示的步骤,因为我有大量的 nuget 包和 ResX 文件,所以当我尝试时总是会导致构建错误
那么是否有任何直接的步骤可以将 PCL 项目更新为 .NetStandrard 项目呢?
基于詹姆斯·蒙特马尼奥的博客文章 https://montemagno.com/how-to-convert-a-pcl-library-to-net-standard-and-keep-git-history about 如何将可移植类库转换为 .NET Standard 并保留 Git 历史记录:
- 卸载您的 PCL 项目(右键单击 -> 卸载),然后开始编辑它(右键 -> 单击编辑)
-
删除 csproj 中的所有内容并插入以下内容:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<!--<PackageReference Include="" Version=""/>-->
</ItemGroup>
</Project>
添加回 NuGets(只需打开 packages.config,然后添加上面的包引用,或通过 NuGet 包管理器。
- 删除AssemblyInfo.cs(现在位于csproj中)和packages.config(也在csproj中通过PackageReference)
今天有很多指南可用(例如this one https://xamarinhelp.com/upgrade-pcl-net-standard-class-library/),但它们基本上是相同的(除了一些项目特定的特性。我读到的是,为此你至少需要 VS 2017。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)