2010-12-30 17 views
5

que tienen diversas DLL que no estoy en referencia directa a un sitio web ASP.NET que estoy tratando de publicar a través de la función "Paquete/Publicar Web" en Visual Studio 2010.¿Cómo se incluye un dll no referenciado cuando se publica una aplicación web?

¿Cómo puedo saber que la función de publicación necesita incluir estos ciertos archivos?

Tenga en cuenta que no quiero hacer referencia directamente a estos dll (la solución se ha configurado específicamente de forma que no se haga referencia directa a estos dll específicos).

He encontrado un <ExcludeFilesFromDeployment/> pero no encuentro la manera de incluir archivos específicamente.

+0

¿Por qué en lugar de sólo hacer referencia a los archivos DLL ? – Jacob

+1

Si se hace referencia a los dll, el programador podría usar esas clases en esos dll directamente, en lugar de utilizar las capas de abstracción que he configurado. Más concretamente, tengo interfaces en un proyecto (al que se hace referencia) y la implementación concreta en otro proyecto (que no está referenciado). Todo esto se conecta a través de un contenedor DI, y una entrada de archivo de configuración simple engancha todo. No quiero que el programador pase por alto esta infraestructura. –

+1

Sí Oded, en un mundo perfecto, estas violaciones serían recogidas por nDepend. No es que no confíe en los desarrolladores (de los cuales estoy muy incluido), es que me gustaría llevarlos al "pozo del éxito". Si puedo simplificar las referencias del proyecto para que el equipo no se meta fácilmente en problemas, entonces eso es una victoria. En un equipo con niveles de experiencia variados en muchos proyectos, en múltiples plataformas, se aprecia cualquier ganancia. –

Respuesta

1

Solo publicará desde las carpetas en su sitio web. Siempre acabo de hacer que el sitio web haga referencia a esos archivos, por lo tanto, cuando lo construí, eran locales en el sitio y se publicarían junto con todo lo demás.

+0

Hay un plugin visual studio que hará lo que quieras. http://www.codedigest.com/Articles/VisualStudio/126_Web_Deployment_Project_for_Visual_Studio_2005_and_2008.aspx – phillip

+0

vs versión 2010 también: http://blogs.msdn.com/b/webdevtools/archive/2010/05/26/visual-studio-2010 -web-deployment-projects-rtw-available-now.aspx – phillip

+0

Gracias phillip - Voy a ver esos enlaces. –

4

Puede añadirlos al proyecto (al igual que se agrega una imagen) y cambie la propiedad Guardar en agenda de salida a Copiar si es más nuevo. Luego, cuando construyas, deberían colocarse en el contenedor. Eso debería funcionar cuando publicas también.

+0

Esto es sin duda una opción, incluso si se trata de un truco. ¡Gracias! –

+1

Sí. Tuvimos una solución similar a lo que estás haciendo cuando usamos Unity, y siento tu dolor. Usamos eventos de compilación posterior para insertar los dll's en el contenedor, pero cuando publicamos teníamos que recordar ir a buscarlos manualmente. – Josh

Cuestiones relacionadas