2017-11-08 3 views
1

これはずっと前のように思えるかもしれませんが、.NET Framework 2.0を対象としたクラスライブラリを開発する必要があります。私たちのビルドスクリプトはVisual Studio 2010を必要とし、devenv.exeを起動し、ソリューションファイルへのパスを渡します。.NET Core 2 SDKツールを使用して.NET Framework 2.0を対象とするクラスライブラリを構築できますか?

.NET Framework 2.0をターゲットとするクラスライブラリを作成するための新しい要件があります(長期的な.NET標準バージョンのターゲティングを目標に)。 .NETの再設計により、IDEは必要なくなり、代わりに.NET Core 2 SDKツールが必要になります。

dotnet buildコマンドが--framework引数を受け入れることに気付きました。 Target Frameworksページには、対応するTFMであるnet20が表示されます。 はのは努力を何が起こるか見てみましょうとして、私はnet20対象とし、次のエラーメッセージと会った:

C:\ CLI \ SDK \ 2.0.0 \ Microsoft.Common.CurrentVersion.targets(1122,5 ): エラーMSB3644:フレームワーク の参照アセンブリ ".NETFramework、Version = v2.0"が見つかりませんでした。これを解決するには、 SDKまたはターゲティングパックをこのフレームワークバージョン用にインストールするか、 アプリケーションをSDK またはTargeting Packがインストールされているフレームワークのバージョンにリターゲットします。アセンブリはグローバルアセンブリキャッシュ(GAC)から に解決され、 参照アセンブリの代わりに使用されることに注意してください。したがって、あなたのアセンブリは、あなたが意図しているフレームワークを対象とした正確な ではないかもしれません。 [C:私の\ project.csprojを\に\パス\]

のVisual Studio 2017での私のプロジェクトのプロパティの[アプリケーション]タブの中には、ターゲットフレームワーク]ドロップダウンはInstall other frameworks...リンクを持っています。最も古い.NET Frameworkのバージョンは3.5 SP1で、Dev Packの参照はありません。私がしようとしていることは可能ですか?もしそうなら、どこで.NET Framework 2.0 Targeting Packを見つけることができますか?

答えて

0

は、実際には、Microsoftはそれが簡単に

(I).NET Framework 2.0 Software Development Kit (SDK) (x64)または

(ⅱ).NET Framework 2.0 Software Development Kit (SDK) (x86)

別の問題作るために好きではないという事実にもかかわらず、.NET 2.0を見つけるのは難しくありません.NET Framework 2.0をターゲットとして.NET Coreビルドシステムを取得することです。 Roslynは.NET 2.0のターゲット設定をサポートしていますが、.NET Coreビルドシステムがどのように動作するかは分かりません。しかし、すべてがオープンソースなので、確実に行うことができます。唯一の問題は、どれくらいの作業が必要かということです。私が指摘したフレームワークを使って試してみてください。おそらく、いくつかの問題を乗り越えるのに役立つかもしれません。

+0

これらのリンクを共有していただきありがとうございます。 –

1

MSBuildがこれらのフレームワークで異なって動作し、.NETコアバージョンのMSBuildが必要な操作を実行できないため、.NETバージョンが4. *より低い場合は、.NET CLI(dotnet buildおよび類似のコマンド)を使用できません。ただし、開発者コマンドプロンプトからmsbuild.exeを使用できます。

2. * CLRをビルドするには、フレームワークをインストールする必要があります。ターゲットパックは4. *のコンセプトであり、msbuildはNET < 4. *を対象とするアプリケーションにインストール済みのフレームワークを使用できるようにする予定です。 (具体的にはMSBuildTaskHost.exeは.NET 3.5フレームワークを使用して実行されます)。

私は2.0用にビルドしようとしていませんが、3.5用ビルド(これはMicrosoft(3.5 SP1)で引き続きサポートされている唯一のバージョンです)が可能でサポートされています。

+0

CLR 2.0ベースのビルドで.NET CLIを使用したいと考えていました。あなたが言っていることから、これは不可能です。 「4. *」と言ったら、実際に4.0を含めるのですか?または4.5 +を意味するのですか? –

+0

私は実際に4.0+を意味していますが、実際のターゲットパックを入手するのは難しいかもしれません.msbuild変数をオーバーライドしてnet20/net35リファレンスアセンブリの場所を指定する方法がありますが、msbuildを使用する方がよいでしょう。 VSまたはモノのmsbuild(これは、サポートするすべてのプラットフォームで.netコアとフル.netのSDKプロジェクトをビルドすることができます) –

関連する問題