vscode visual tag studio orthography code visual-studio msbuild

visual-studio - tag - visual studio code orthography



¿Cómo evitar la copia de archivos de documentación XML en una compilación en modo de lanzamiento? (5)

¿Cuál es el problema de tener los archivos XML copiados en la carpeta en versiones de lanzamiento? Me parece que esto está bien y que el verdadero problema es con el código que recoge los archivos para colocarlos en el instalador. Recoger dlls de terceros de su propia carpeta bin / release no es una buena práctica en mi opinión. Haría que mi instalador recoja dlls de terceros de su propia carpeta en mi árbol fuente.

Tengo un proyecto de Visual Studio 2010 que hace referencia a algunos componentes de terceros. Sus conjuntos están acompañados por archivos de documentación XML, que son útiles para nosotros (y solo para nosotros) los desarrolladores. Y cada vez que se construye el proyecto (ya sea en los modos Depurar o Liberar), estos archivos XML se copian en el directorio de compilación.

Parece que no puedo encontrar una configuración o cambiar para desactivar la copia de esos archivos XML en el directorio de compilación, ya sea dentro de Visual Studio o a través de MSBuild. Un script posterior a la creación puede ser una opción, pero un mal olor. ¿Algunas ideas? Gracias.


Cuando crea un proyecto, los archivos .xml / .pdb se recopilan a través de la tarea ResolveAssemblyReference. Cuando se llama a ResolveAssemblyReference, se pasa una lista de extensiones de archivos relacionados. La lista de extensiones de archivos se captura en la propiedad MSReglamento AllowedReferenceRelatedFileExtensions . Por defecto, esa lista contendrá ".pdb; .xml".

Si desea excluir todos los archivos de referencia relacionados de ser recogidos, simplemente anule el valor de la propiedad a algo de lo cual los archivos relacionados no tendrán extensiones. Por ejemplo, puede establecer AllowedReferenceRelatedFileExtensions en "-".

También puede personalizar la lista de archivos que devuelve. Si solo desea buscar solo archivos .pdb, deberá pasar AllowedReferenceRelatedFileExtensions=".pdb" . En ese caso, cualquier referencia que tenga un archivo .pdb junto al archivo .dll / .exe se copiará también. También puede usar esto para copiar otros archivos relacionados que pueden no terminar en .pdb / .xml. Por ejemplo, si tiene un ensamblado al que se hace referencia con el nombre, MyAssembly.dll y en esa misma carpeta existe MyAssembly.pdb y MyAssembly.foo Si establece AllowedReferenceRelatedFileExtensions=".pdb;.foo" entonces tanto el archivo .pdb como el archivo .foo estarán copiado en el directorio de salida.


El archivo de proyecto de Visual Studio tiene el mismo formato que cualquier archivo de msbuild. De modo que puede agregar manualmente la condición en la sección correspondiente para no copiar sus archivos xml si el nombre de la configuración es ''Liberar''.

Debería estar cambiando

<ItemGroup>

a

<ItemGroup Condition="''$(CONFIG)''==''RELEASE''">

o algo como esto.


La configuración se encuentra en las Propiedades del proyecto en cuestión, en la pestaña "Crear", desmarque "Archivo de documentación XML". También es una propiedad de MSBuild llamada <DocumentationFile> en el <PropertyGroup> aplicable para su configuración de compilación en el archivo. * Proj.


Si el archivo .xml / .pdb está marcado como "Contenido" (etc) de acción de compilación, puede cambiarlo a "Ninguno". También debe asegurarse de que copy-to-build-output sea falso .

¿Ambos están establecidos?