将PCL转换为普通的类库

21

我目前有一个 便携式类库,其代码完全与常规的 类库 兼容,无需任何修改。

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


4
如果代码完全兼容,为什么要进行转换呢?只需将PCL原样用于您自己的项目中即可。 - thecoop
我使用的 Xamarin 版本比较老,不支持 PCL。 - Max
“重新编译为不同的目标”是一个选项吗?还是您想在 DLL 级别上工作?如果是这样:它是否已签名/强命名? - Marc Gravell
2个回答

56

差异将体现在您的.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 等。 - Jan Zahradník
4
从PCL转换到正常状态时,我认为您需要添加对System和System.Core等内容的引用。(这似乎是OP所问的问题)在这里列出的更改后,我没有对任何内容进行引用,但很容易将它们添加回去。谢谢! - Steve In CO
工作得很好。非常感谢。 - AH.
还需要在 packages.config 中设置正确的 targetFramework 并还原包。 - Elan Hasson

6

这与作者想要做的相反。他们已经拥有了一个 PCL,并希望将其转换为普通类库。另外,链接现在已经失效。 - Swampie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接