53

我有一些包含大量现有代码的类库。类库当前面向 .NET 4.0。是否有关于如何将这些库转换为可移植库的指导?从 .csproj 看,似乎没有很多差异:

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

<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

尝试将现有类库转换为可移植库是好主意还是坏主意?

4

3 回答 3

67

我们还将现有库转换为可移植库,并且运行良好。您必须修改项目文件。替换以下行:

<Import Project="..." />

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

在 PropertyGroup 标记内添加以下行

<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

并从 AssemblyInfo.cs 文件中删除以下行

[assembly: ComVisible(false)]
[assembly: Guid("...")]

之后,Visual Studio 应该会在项目属性页面中显示标签页“库”,您可以更改可移植库的目标框架。

于 2012-08-15T07:43:16.267 回答
4

我创建了一个 Visual Studio 扩展来自动执行此操作。只需在 Visual Studio > 2012 的 Extension 中搜索“转换为 pcl

源代码也可以在 Github 上找到。

于 2014-12-02T15:32:24.723 回答
0

您可以删除该<Import Project="..." />行。然后,当您重新加载项目时,Visual Studio 会询问您要定位哪些框架。然后,您可以稍后在项目的属性中更改它。

于 2013-04-25T06:10:31.250 回答