如何将 PCL 转换为 .Net 标准库

2024-03-10

所以我有一个 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(使用前将#替换为@)

如何将 PCL 转换为 .Net 标准库 的相关文章

随机推荐

  • JDK 1.6 中“vm 线程”的作用是什么[重复]

    这个问题在这里已经有答案了 我们在客户的系统中看到该线程的大量活动 因此想知道可能会发生什么 有链接 信息 教程吗 P S 这种情况发生在带有 JDK 1 6 0 23 的 Solaris 10 上 该线程将为您提供一些继续操作的步骤 如果
  • 了解 z3 模型

    Z3Py 片段 x Int x fun Function fun IntSort IntSort IntSort phi ForAll x fun x x x print phi solve phi 永久链接 http rise4fun c
  • 关闭申请

    关闭 C 应用程序时的最佳实践是什么 我读到您可以使用 Environment Exit 0 or Application Exit 但有什么区别呢 此外 关于Environment Exit 0 我以前在使用Java时使用过退出代码 但从
  • Javascript - 在另一个数组中插入一个数组

    将一个数组插入另一个数组的更有效方法是什么 a1 1 2 3 4 5 a2 21 22 newArray a1 insertAt 2 a2 gt 1 2 21 22 3 4 5 如果 a2 数组很大 从性能角度来看 使用 splice 迭代
  • 有没有办法触发Maven Appengine Devserver自动刷新静态文件?

    最新版本的maven插件已经实现了每5秒更新一次代码 这是一个很大的进步 但除非我配置错误 否则它似乎不会获取静态文件更改 例如连接到 appengine 代码的正在进行的 Javascript 有什么方法可以改变这种行为 还是我只需要等待
  • 添加 VirtualHost 失败:访问禁止错误 403 (XAMPP) (Windows 7)

    我已经在 Windows 7 上运行了 XAMPP 安装 一旦我将 VirtualHost 添加到 httpd vhosts conf 两者都是 常规 http localhost和新的dropbox local不工作 这是我添加到我的ht
  • 在 DAX 中进行测量以计算仅适用于 Power BI 的选定月份的年初至今

    如何构建 DAX 度量来计算特定月份的 YTD 值总和 这里我们有按月份分组的事实表 FactTable 填充了实际数据和预测数据 了解实际结束时间的唯一方法是 截止日期 列 年初至今 中的信息 在表 截止日期 列 YTD 结束 中 这是一
  • 如何使用 Apps 脚本使用预设选项填充 HTML 表列之一?

    我试图让这个表显示每个表行的选项 但我不太明白 我想我会把它设置在第二个for loop 但我是新手html并且无法前进
  • 在 ggplot2 中对 x 轴日期值进行排序

    我有以下数据集 正如你所看到的 我有两周的一些定量数据 我想对它们的日子进行比较 即 星期一 09 和星期一 10 week date day n chr date chr int 1 Week 09 2016 02 29 Monday 5
  • 如何在matlab中隐藏轴和刻度而不隐藏其他所有内容

    我在 matlab UI 中将图像绘制到轴上 但我不希望轴和刻度线可见 如何防止这种情况发生 以及在哪里进行此调用 我这样做 imagesc myImage parent handles axesInGuide axis off 这是你想要
  • 如何在 Sinatra 代码中发出 POST 请求?

    单击表单中的按钮将发送一个 POST 请求 由以下代码段处理 post register do send post request to http www randomsite com parse response do something
  • JS async/await - 为什么await需要异步?

    为什么使用await需要声明其外部函数async 例如 为什么这个 mongoose 语句需要它所在的函数来返回一个承诺 async function middleware hostname done try let team await
  • MPMediaItem 未使用 MPMediaItemPropertyAssetURL 在 AVAudioPlayer 中播放

    我有这段代码 用于查找并播放 MPMediaItem MPMediaPropertyPredicate predicate MPMediaPropertyPredicate predicateWithValue self persisten
  • 注册自定义单元格时不调用prepareForSegue

    这不是 Segue 标识符拼写错误或类似问题 方法prepareForSegue当我点击表视图控制器中的单元格时 实际上并没有被调用 如果我点击单元格 则仅当我添加新单元格时 控制语句之前的日志语句才不会记录 void prepareFor
  • 1/252 = 0 在 C# 中?

    我正在做计算 在调试时我发现了这个 double num 1 252 当我调试它时 数字设置为零 0 是否有一个原因 我想将其作为实际计算 Thanks 是 该计算正在执行integer算术 尝试这个 double num 1 0 252
  • JavaScript Chrome 扩展 - 从弹出窗口到内容创建新选项卡后发送消息

    在我的扩展的 popup js 中 我想创建一个新选项卡并发送一条消息 content js 必须监听消息并回答 但它不起作用 我尝试了很多在其他问题中找到的解决方案 但没有成功 这是我的文件 Manifest json name Stam
  • 嵌入导航控制器

    我刚刚将 Xcode 从 4 2 更新到 4 3 3 但我不断遇到问题 是否可以在单视图应用程序中添加导航控制器 因为当我尝试将导航控制器嵌入到控制器中时 什么也没有发生 我希望有两个视图控制器通过按钮连接到第二个控制器 并通过导航栏连接到
  • 在 javafx 2 中通过拖动来移动节点的正确方法?

    我正在将具有大量自定义绘画的 Swing Graphics2D 应用程序转换为 JavaFX2 应用程序 虽然我非常喜欢新的 API 但在绘制椭圆时 我似乎遇到了性能问题 我想在鼠标移动到鼠标光标下方时绘制椭圆 当我以稳定的方式 不是快得离
  • 带标头的节点获取 API GET

    https www npmjs com package node fetch https www npmjs com package node fetch节点 v6 4 0 npm v3 10 3 我想在此 API 调用中发送带有自定义标头
  • 如何将 PCL 转换为 .Net 标准库

    所以我有一个 PCL 项目 但现在想更新它以支持 Net Standard 我读过微软网站步骤 https learn microsoft com en us dotnet core porting libraries converting