我有一些包含大量现有代码的类库。类库目前以.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>
尝试将现有类库转换为可移植库是一个好主意还是坏主意?
答案 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将询问您要定位哪些框架。然后,您可以稍后在项目的属性中更改它。