Quais são minhas opções para compartilhar código entre projetos DNX / ASP.NET 5 (project.json / xproj) e outros projetos C # (csproj) em uma única solução?

Cenário

Estou experimentando o Visual Studio 2015 RC, procurando especificamente mudar para a nova estrutura do ASP.NET 5, a estrutura do projeto e o novo DNX que executa aplicativos do ASP.NET 5.

Meu empregador tem muitas soluções existentes visando o .NET Framework 4.5.2. Em nossas soluções existentes do Visual Studio, podemos ter os seguintes projetos:

[Solution] Sample.sln
    [Folder] src
        [Project] ClassLibrary.csproj
        [Project] WindowsService.csproj
        [Project] WebApplication.csproj
    [Folder] test
        [Project] ClassLibrary.UnitTests.csproj
        ...

Neste cenário,ClassLibrary.csproj é uma biblioteca de classes C # que contém código compartilhado. É uma dependência / referenciada por ambosWindowsService.csproj eWebApplication.csproj.

Não estamos tentando segmentar especificamente o .NET Core,dnxcore50. Nesta fase, estamos felizes em segmentar o .NET Framework,dnx451. No entanto, estamos absolutamente tentando aproveitar os novos recursos do ASP.NET 5 e a estrutura de projeto associada.

Abaixo estão algumas opções que eu pensei, mas ambas têm problemas.

Opção 1

Quando substituímos oWebApplication.csproj projeto acima com um novo projeto ASP.NET 5 DNXWebApplication-dnx então ainda podemos fazer referência aoClassLibrary.csproj deste novo projeto DNX e do projeto existenteWindowsService.csproj projeto. No entanto, alguns problemas surgem:

Essa abordagem significa qualquer alteração no código emClassLibrary.csproj precisa de uma reconstrução para ficar visível na execuçãoWebApplication-dnx. Isso não é surpreendente, mas significa que não obtemos todos os benefícios de compilação da fonte paraWebApplication-dnx.

Não podemos segmentar facilmente outras estruturas, por exemplo,dnxcore50. Como acima, esse não é um objetivo específico nesse estágio.

opção 2

Se substituirmosClassLibrary.csproj com um projeto de biblioteca de classes DNX ^ClassLibrary-dnx os problemas na opção 1 não se aplicam. Essa abordagem parece estar mais de acordo com a maneira como o tempo de execução do .NET e as tecnologias associadas, como o ASP.NET, serão empacotadas no futuro.

No entanto, não consigo encontrar uma maneira de fazer referênciaClassLibrary-dnx deWindowsService.csproj. Se essa abordagem for viável, imagino que a solução tenha algo a ver com a opção no nível do projeto paraProduce outputs on build e, em seguida, referenciando o.nupkg ou talvez até o.dll que é produzido durante a construção. No entanto, não consigo ver uma maneira limpa de conseguir isso através das ferramentas.

^ Os projetos da biblioteca de classes DNX são chamadosClass Library (Package) no VS 2015 RC. Esse tipo de projeto foi chamado anteriormenteASP.NET Class Library nos CTPs.

Sumário

Com base nas informações acima, estou procurando:

Algum feedback para minhas opções e problemas de cenário.

Sugestões para outras opções em que não pensei.

Talvez uma indicação de qual abordagem deva ser usada no futuro.

questionAnswers(1)

yourAnswerToTheQuestion