【问题标题】:Convert a PCL to a regular Class Library将 PCL 转换为常规类库
【发布时间】:2013-11-20 11:00:02
【问题描述】:

我目前有一个Portable Class Library,其代码完全兼容常规Class Library,无需任何修改。

我想知道是否有现有的软件可以自动进行转换;我查看了 Visual Studio 工具,但找不到任何合适的工具。在写我自己的之前,我只是想确定一下!

【问题讨论】:

  • 如果代码完全兼容,为什么要转换呢?只需在您自己的项目中按原样使用 PCL。
  • 我使用的是不支持 PCL 的旧版 Xamarin。
  • “为不同的目标重新编译它”是一个选项吗?或者您是否尝试在 dll 级别工作?如果是这样:它是签名/强命名的吗?

标签: .net dll portable-class-library


【解决方案1】:

差异将在您的 .proj 文件中。

自己尝试过之后,您将不得不执行以下所有操作

  1. 删除<TargetFrameworkProfile> 元素
  2. 删除<ProjectTypeGuids> 元素
  3. 将 #2(下)的位置更改为我在 #1 中显示的内容

1.常规类库

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

2。可移植类库

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />

【讨论】:

  • 您还需要删除所有对非 pcl dll 的引用,例如 System 等。
  • 我认为当从 PCL 转为正常时,您需要添加对 System 和 System.Core 等内容的引用。 (这听起来像是 OP 的要求)在此处列出的更改之后,我没有引用任何内容,但很容易将它们添加回来。谢谢!
  • 工作得很好。非常感谢。
  • 还需要在packages.config中设置正确的targetFramework并恢复包。
【解决方案2】:

使用 VSCommands,它具有将项目转换为 PCL 的内置功能。右键单击项目并转换。 它是免费的,并且是 Visual Studio 扩展的一部分 http://vscommands.squaredinfinity.com/Features-SolutionExplorer

2016 年 10 月 12 日更新: 上面的链接已经死了。该工具已针对 Visual Studio 2015 进行了重写,可在此处找到:https://visualstudiogallery.msdn.microsoft.com/c84be782-b1f1-4f6b-85bb-945ebc852aa1

【讨论】:

  • 这与作者想要做的相反。他们已经有一个 PCL 并希望将其转换为常规类库。此外,链接现在已断开。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
  • 1970-01-01
  • 2015-03-26
  • 1970-01-01
  • 1970-01-01
  • 2011-10-30
相关资源
最近更新 更多