Есть ли какие-либо рекомендации по преобразованию существующих библиотек классов .NET в переносимые библиотеки?
У меня есть библиотеки классов с нетривиальным количеством существующего кода. В настоящее время библиотеки классов предназначены для .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>
Является ли хорошей или плохой идеей попробовать преобразовать существующую библиотеку классов в переносимую библиотеку?
Ответы
Ответ 1
Мы также преобразовали существующие библиотеки в портативные библиотеки, и все работает отлично. Вы должны изменить файл проекта. Замените следующую строку:
<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 должна показать вам вкладку "Библиотека" на странице свойств проекта, и вы можете изменить целевые рамки для переносимой библиотеки.
Ответ 2
Я создал расширение Visual Studio для его автоматизации.
Просто выполните поиск в Visual Studio > 2012 в Extension для конвертировать в pcl"
Исходный код также доступен в Github.
Ответ 3
Вы можете удалить строку <Import Project="..." />
. Затем, когда вы перезагружаете проект, Visual Studio спросит вас, какие рамки для таргетинга. Затем вы можете изменить это позже в свойствах проекта.