web-dev-qa-db-ja.com

既存の.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>

既存のクラスライブラリをポータブルライブラリに変換してみるのは良い考えですか、悪い考えですか?

53

また、既存のライブラリをポータブルライブラリに変換しましたが、正常に機能します。プロジェクトファイルを変更する必要があります。次の行を置き換えます。

<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のプロジェクトプロパティページにタブページ「ライブラリ」が表示され、ポータブルライブラリのターゲットフレームワークを変更できます。

67
DerDani81

これを自動化するVisual Studio拡張機能を作成しました。 Visual Studio> 2012の拡張機能で「 convert to pcl 」を検索するだけです

ソースコードはGithubでも入手できます。

4
Martin Poehler

<Import Project="..." />行を削除できます。次に、プロジェクトをリロードすると、Visual Studioはターゲットにするフレームワークを尋ねます。その後、プロジェクトのプロパティでこれを後で変更できます。

0
Owen Johnson