Actualicé a Visual Studio 2015 desde nuestra suscripción a MSDN porque estaba muy emocionado de leer sobre Proyectos compartidos... No más administrar paquetes nuget 21382 en nuestras dependencias cuando todo lo que queremos hacer es reutilizar el código.
Así que construí un proyecto compartido de prueba con algo de código. Luego agrego una nueva aplicación web vacía en .Net 4.6 al proyecto. Ahora esperaba ir a las referencias y ver una pestaña de "Proyectos compartidos" en la ventana de referencias, pero no veo ninguna.
Ahora puedo agregar una biblioteca de clases a la misma solución y veo la pestaña y puedo agregar la referencia compartida. Sin embargo, no puedo agregar el proyecto compartido a mi aplicación web.
Más bien esperaba poder usar este concepto para compartir vistas con múltiples proyectos MVC.
¿Me estoy perdiendo algo aquí o los proyectos compartidos no son compatibles con los proyectos web?
La única forma que veo de esto es tener dos proyectos para cada aplicación web que construyo. 1 para el código y 1 para el contenido.
Por ejemplo
XYZ.SomeWebSite.Code (Class Library Project Type) -> references Shared Project XYZ.SomeWebSite (Web Project Type)Sin embargo, siguiendo esta ruta, no podría enviar vistas, archivos de texto, archivos css, archivos javascript, etc. a la aplicación web.
[Respuesta temporal]
Pude solucionar el problema editando manualmente el archivo csproj para mi aplicación web.
Aquí están los pasos:
Ahora busque el elemento ProjectTypeGuids.
{349C5851-65DF-11DA-9384-00065B846F21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
El primer GUID es el GUID de un proyecto ASP.Net MVC 5 y el segundo GUID es para C#.
Todo lo que necesita hacer es eliminar temporalmente el primer GUID y el punto y coma, dejando solo el C# GUID (el segundo).
Vuelva a cargar el proyecto y agregue sus proyectos compartidos. Una vez que se hayan agregado, edite el archivo del proyecto y vuelva a colocar el primer GUID y el punto y coma.
Vuelva a cargar el proyecto.
La referencia del proyecto compartido seguirá estando allí, y se compilará y vinculará a su aplicación web.
Opcionalmente, puede agregar manualmente la referencia del proyecto compartido, el formato es así
<Import Project="..\XYZ.UPlugin\XYZ.Plugin.projitems" Label="Shared" />