¿Cuáles son mis opciones para compartir código entre proyectos DNX / ASP.NET 5 (project.json / xproj) y otros proyectos C # (csproj) dentro de una única solución?

Guión

Estoy experimentando con Visual Studio 2015 RC, específicamente buscando cambiar al nuevo marco ASP.NET 5, la estructura del proyecto y el nuevo DNX que ejecuta aplicaciones ASP.NET 5.

Mi empleador tiene muchas soluciones existentes dirigidas a .NET Framework 4.5.2. En nuestras soluciones existentes de Visual Studio, podríamos tener los siguientes proyectos:

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

En este escenario,ClassLibrary.csproj es una biblioteca de clase C # que contiene código compartido. Es una dependencia de / referenciada por ambosWindowsService.csproj yWebApplication.csproj.

No estamos tratando específicamente de dirigirnos a .NET Core,dnxcore50. En esta etapa, nos complace dirigirnos a .NET Framework,dnx451. Sin embargo, estamos tratando absolutamente de aprovechar las nuevas características de ASP.NET 5 y la estructura de proyecto asociada.

A continuación hay algunas opciones que he pensado pero ambas tienen problemas.

Opción 1

Cuando reemplazamos elWebApplication.csproj proyecto anterior con un nuevo proyecto ASP.NET 5 DNXWebApplication-dnx entonces todavía podemos hacer referencia alClassLibrary.csproj tanto de este nuevo proyecto DNX como de los existentesWindowsService.csproj proyecto. Sin embargo, surgen algunos problemas:

Este enfoque significa cualquier cambio en el código enClassLibrary.csproj necesita una reconstrucción para ser visible en la ejecuciónWebApplication-dnx. Esto no es sorprendente, pero significa que no obtenemos beneficios completos de compilación desde la fuente paraWebApplication-dnx.

No podemos apuntar fácilmente a otros marcos, p. Ej.dnxcore50. Como anteriormente, esto no es específicamente un objetivo en esta etapa.

opcion 2

Si reemplazamosClassLibrary.csproj con un proyecto de biblioteca de clase DNX ^ClassLibrary-dnx entonces los problemas en la opción 1 no se aplican. Este enfoque parece ser más acorde con la forma en que el tiempo de ejecución de .NET y las tecnologías asociadas como ASP.NET se empaquetarán en el futuro.

Sin embargo, no puedo encontrar una forma de referenciaClassLibrary-dnx deWindowsService.csproj. Si este enfoque es viable, imagino que la solución tiene algo que ver con la opción de nivel de proyecto paraProduce outputs on build y luego haciendo referencia al.nupkg o tal vez incluso el.dll que se produce durante la construcción Sin embargo, no puedo ver una manera limpia de lograr esto a través de las herramientas.

^ Los proyectos de biblioteca de clase DNX se llamanClass Library (Package) en VS 2015 RC. Este tipo de proyecto se llamaba anteriormenteASP.NET Class Library en los CTP.

Resumen

Según la información anterior que estoy buscando:

Algunos comentarios sobre mis opciones de escenario y problemas.

Sugerencias para otras opciones que no he pensado.

Quizás una indicación de qué enfoque se debe utilizar para avanzar.

Respuestas a la pregunta(1)

Su respuesta a la pregunta