美文网首页无题Amazing .NETXamarin.Forms
如何将PCL项目转换成.Net Standard项目

如何将PCL项目转换成.Net Standard项目

作者: 临岁之寒 | 来源:发表于2018-04-21 19:27 被阅读42次

    从Xamarin.Forms 2.4开始,我们可以基于.Net Standard 2.0来构建Xamarin.Form项目,而不必像之前那样通过PCL项目进行构建。让我们迁移的.Net Standard理由是,通过.Net Standard构建的项目可以获得更好的平台移植性,对于我而言,最直观的进步是不再需要频繁地调整项目的PCL配置方案,并且不再需要小心翼翼地保持配置方案的一致性;
    以下是官方给出的迁移步骤:

    • 确保你的VS环境已安装了 .NET Core 2.0

    • 更新 Xamarin.Forms 解决方案,以便使用 Xamarin.Forms 2.4,或更高版本(将VS For Mac更新到最新版本即可)。

    • 添加 一个.NET Standard Library项目到解决方案,Target Framework 选 .NET Standard 2.0。


    • 删除.NET Standard Library项目中的Class1文件(该文件是示例文件,你可以不管它,跳过这一步,就是不知道你是不是处女座了);

    • 将 Xamarin.Forms(目前已经是2.5了) NuGet 包添加到.NET Standard Library项目。


    • 在平台项目中,添加对我们刚才创建的.NET Standard Library项目的引用并删除对之前 Xamarin.Forms PCL 项目的引用。

    • 将PCL 项目中的文件复制到.NET Standard Library项目中。

    • 删除旧的 Xamarin.Forms PCL 项目。

    注意:

    • 从Xamarin.Forms PCL 项目将文件复制到.NET Standard Library项目中,执行clear操作可能会出现如下问题:



      此时把整个解决方案关闭之后重新载入,就会看到.NET Standard Library项目下存在重复的文件名,将排在后面的重名文件remove掉之后就可以了。

    • 如果项目报类似Error CS0103: The name 'InitializeComponent' does not exist in the current context (CS0103)的问题,使用Reveal in Finder打开项目所在文件夹,用文本编辑器打开项目的.csproj文件,添加下列代码:

    <ItemGroup>
        <!-- https://bugzilla.xamarin.com/show_bug.cgi?id=55591 -->
        <None Remove = "**\*.xaml" />
    
    
        < Compile Update="**\*.xaml.cs" DependentUpon="%(Filename)" />
        <EmbeddedResource Include = "**\*.xaml" SubType="Designer" Generator="MSBuild:UpdateDesignTimeXaml" />
      </ItemGroup>
    

    rebuild项目即可;

    • .NET Standard Library项目无法被PCL项目引用,所以如果要转换到.NET Standard ,则解决方案中的所有PCL项目都可能需要转换;

    参考文献

    相关文章

      网友评论

      本文标题:如何将PCL项目转换成.Net Standard项目

      本文链接:https://www.haomeiwen.com/subject/whwxlftx.html