シナリオ
私は Visual Studio 2015 RC を試しています。具体的には、新しい ASP.NET 5 フレームワーク、プロジェクト構造、および ASP.NET 5 アプリケーションを実行する新しい DNX への切り替えを検討しています。
私の雇用主には、.NET Framework 4.5.2 をターゲットとする既存のソリューションが多数あります。既存の Visual Studio ソリューションには、次のプロジェクトがある場合があります。
[Solution] Sample.sln
[Folder] src
[Project] ClassLibrary.csproj
[Project] WindowsService.csproj
[Project] WebApplication.csproj
[Folder] test
[Project] ClassLibrary.UnitTests.csproj
...
このシナリオでClassLibrary.csprojは、共有コードを含む C# クラス ライブラリです。WindowsService.csprojこれは、との両方によって参照される / の依存関係ですWebApplication.csproj。
特に .NET Core をターゲットにしようとしているわけではありませんdnxcore50。この段階では、.NET Framework を対象として満足していますdnx451。ただし、ASP.NET 5 の新機能と関連するプロジェクト構造を最大限に活用しようとしています。
以下は私が考えたいくつかのオプションですが、どちらにも問題があります。
オプション1
WebApplication.csproj上記のプロジェクトを新しい ASP.NET 5 DNX プロジェクトに置き換えても、この新しい DNX プロジェクトと既存のプロジェクトの両方からWebApplication-dnx参照できます。ただし、いくつかの問題が発生します。ClassLibrary.csprojWindowsService.csproj
ClassLibrary.csprojこのアプローチは、再構築が必要なコードへの変更が、実行中のWebApplication-dnx. これは驚くべきことではありませんが、WebApplication-dnx.他のフレームワークを簡単にターゲットにすることはできません
dnxcore50。上記のように、これはこの段階では具体的な目標ではありません。
オプション 2
ClassLibrary.csprojDNX クラス ライブラリ プロジェクト^に置き換えると、ClassLibrary-dnxオプション 1 の問題は適用されません。このアプローチは、今後 .NET ランタイムと ASP.NET などの関連テクノロジがパッケージ化される方法とより調和しているように思われます。
ClassLibrary-dnxしかし、から参照する方法が見つかりませんWindowsService.csproj。このアプローチが実行可能な場合、ソリューションはプロジェクト レベルのオプションと関係があり、ビルド中に生成される、またはおそらくProduce outputs on buildを参照すると思います。ただし、ツールを使用してこれを実現するクリーンな方法はわかりません。.nupkg.dll
^ DNX クラス ライブラリ プロジェクトはClass Library (Package)VS 2015 RC で呼び出されます。このプロジェクト タイプは、以前ASP.NET Class Libraryは CTP で呼び出されていました。
概要
上記の情報に基づいて、私は探しています:
シナリオのオプションと問題に対するフィードバック。
私が考えていなかった他のオプションの提案。
おそらく、今後どのアプローチを使用する必要があるかを示しています。