有关将现有.NET类库转换为可移植库的指导吗?

时间:2012-06-29 15:59:18

标签: c# projects-and-solutions portability

我有一些包含大量现有代码的类库。类库目前以.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>

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

3 个答案:

答案 0 :(得分: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应该显示Tab页面&#34; Library&#34;在项目属性页面中,您可以更改可移植库的目标框架。

答案 1 :(得分:4)

我创建了一个Visual Studio扩展来自动执行此操作。 只需在Visual Studio中搜索&gt; 2012年扩展为&#34; convert to pcl&#34;

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

答案 2 :(得分:0)

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