2012-02-16 9 views
10

Nota: Esta pregunta es similar a How to prevent the copy of XML documentation files in a release mode build?, pero no es lo mismo y las respuestas allí no se aplican. Siga leyendo para averiguar por qué. (Por favor pregunte en los comentarios o en el chat si no está de acuerdo, estaré encantado de elabroar).¿Cómo evitar que Visual Studio "publique" archivos de documentación XML en proyectos web?


que tienen un proyecto de biblioteca (mylibrary) y un proyecto de aplicación Web ASP.NET referencia a esta biblioteca (ambos están en la misma solución). "Generar archivo de documentación XML" está marcado para el proyecto de la biblioteca, porque quiero tener esas bonitas características de IntelliSense mientras desarrollo.

Cuando publico la aplicación web (menú contextual en el proyecto/Publicar ...), sólo copia los archivos necesarios para ejecutar la aplicación (sin código fuente, etc.) para publicar alguna directorio. Eso es bueno. Desafortunadamente, también copia el archivo de documentación XML de la biblioteca. Como considero que la documentación de nuestra biblioteca es un secreto comercial, no me gustaría que termine en el servidor de un cliente. Por lo tanto, debemos recordar eliminar manualmente este archivo del directorio de publicación antes de implementarlo.

¿Hay alguna manera de evitar impedir que Visual Studio copie este archivo cuando se publica el proyecto ASP.NET, pero aún conserva el beneficio de la documentación XML IntelliSense al desarrollar?

Respuesta

10

Suponiendo que utiliza configuraciones distintas para el desarrollo y la versión (y cualquier otra cosa), desmarcar 'archivo de documentación XML'/desactivar la generación para una configuración específica evitaría que se implemente cuando no sea necesario. Otra opción sería una acción posterior a la creación para eliminar el/los archivo/s.

La primera de esas dos opciones parece más elegante.

+0

No es ideal, ya que (a) necesita editar manualmente el archivo vbproj para establecer este valor de manera diferente para depurar/liberar y (b) omite algunas características de Intellisense al codificar mientras se establece "Liberar", pero parece ser el La mejor opción hasta ahora. – Heinzi

+0

@Heinzi No estoy seguro de que no puedas hacer esto por configuración dentro de la UI, pero me tienes pensando en hacer un chequeo de cordura. ... Sanity checked: este _can_se puede especificar por configuración en la interfaz de usuario. –

+1

Acabo de comprobar también: puede hacerlo para proyectos de C# pero no para proyectos de VB. En los proyectos de VB, la configuración se usa para las configuraciones * all * (a menos que usted anule esto manualmente en el archivo vbproj - entonces la casilla de verificación en la IU muestra "el estado indeterminado"). – Heinzi

4

¿Hay una manera de prevenir el Visual Studio de copiar este archivo cuando publicar el proyecto de ASP.NET,

documentos XML Turn off en modo de lanzamiento

pero aún ¿conserva el beneficio de XML documentación IntelliSense al desarrollar?

documentos XML Encienda en/fuera en modo de depuración. Intellisense funcionará de cualquier manera.

+0

No estoy de acuerdo en su última oración: Los resúmenes de métodos * no * se muestran si los documentos XML están desactivados para la biblioteca (simplemente lo ha probado: apagar, limpiar proyecto, escribir código). – Heinzi

1

que estoy haciendo esto en Express, pero esto parecía funcionar para mí ...

  1. Fui a Propiedades (para el Proyecto)
  2. Seguido Publicar Tab
  3. clic en el botón de archivos de aplicación
  4. opción Mostrar todos los archivos
  5. conjunto de archivos XML para excluir

Como dije, usando Express 2010, pero esto funcionó (no copió el archivo en la ubicación de publicación).

+0

Gracias, pero esto solo funciona para proyectos de aplicaciones de Windows, no para aplicaciones web. Tienen un proceso de publicación diferente y, por lo que puedo ver, no puede configurar archivos individuales allí. – Heinzi

+1

Ah, se perdió esa parte. Lo siento. – APrough

2

Hay otra solución. Simplemente incluya lo siguiente en su archivo csproj en algún lugar al principio:

<AllowedReferenceRelatedFileExtensions>.pdb</AllowedReferenceRelatedFileExtensions> 

Eso es todo. Los archivos XML ya no se publicarán. Por supuesto, puede hacerlo condicional en la configuración concreta.

+0

Nota: este cambio impedirá que los archivos .config de los ensamblados a los que se hace referencia (en la misma solución) se desactiven. – Lyra

Cuestiones relacionadas