所以我有一个PCL项目,但现在想更新它以支持.Net Standard
我已阅读Microsoft website steps来执行此操作:
- 右键单击项目文件,然后选择“属性”。
- 在Library下,选择Target .NET Platform Standard。
但最新版本的Visual Studio 2017中不存在此按钮。
我还阅读了here:
- 关闭VS中的解决方案
- 获取现有的csproj并制作副本 它在别的地方。我会在记事本中打开另一个副本。
- 复制/粘贴您创建的新项目的内容并替换 您现有项目的内容。大部分你在旧的东西 不再需要项目了。你可能需要的是什么 设置,如任何不匹配的签名或程序集名称 文件夹名称/约定。如果你有ResX文件的设计时间 生成的代码,您需要添加以下内容。同样,为 Xamarin表格页面,你需要这个。
但是我不明白上面突出显示的步骤,因为我有大量的nuget包和ResX文件因此在我尝试时总是会导致构建错误
那么有没有直接的步骤将PCL项目更新为.NetStandrard?
答案 0 :(得分:1)
在我看来,最好的方法是从头开始创建一个新项目(.net标准)并将所有内容复制到那里...... 在这里你可以得到一些帮助:https://blog.xamarin.com/building-xamarin-forms-apps-net-standard/
答案 1 :(得分:1)
我将PCL转换为.Net标准库所采取的步骤使用了here与我自己的一些步骤:
packages.config
方式转换为PackageReference
不幸的是,目前没有迁移工具,因此卸载现有软件包可能最简单,确保packages.config文件已经消失,然后在将VS选项设置为PackageReference后安装软件包。你也可以手工完成(这是我为我的项目所做的)。
在项目中创建一个新的.Net Standard类库,调用它类似于MyPclProject1
将所有文件从旧PCL lib拖放到.Net Stanrdard lib
在记事本中打开旧的PCL .csproj文件,并将所有PackageReference
代码复制并粘贴到新的.Net Standard csproj文件中
如果您使用.resx文件,则需要将this code添加到.Net Standard .Csproj文件中(不确定原因)
然后将旧pcl文件中的所有引用更新为新的.Net标准文件并删除旧库
将新的.NEt标准库重命名为旧的pcl名称
答案 2 :(得分:0)
基于blog post from James Montemagno关于如何将可移植类库转换为.NET Standard并保留Git历史记录:
删除csproj中的所有内容,并将其插入:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<!--<PackageReference Include="" Version=""/>-->
</ItemGroup>
</Project>
重新添加NuGets(只需打开packages.config,然后通过Nusum软件包管理器添加上面的软件包引用。
今天有很多指南(例如this one),但是它们基本上是相同的(除了某些特定于项目的特性。我读到的是,至少为此需要VS 2017。