msbuild - documentar - generar documentacion visual studio 2015
¿Cómo puedo evitar que Visual Studio bloquee los archivos de documentación xml en el directorio bin? (5)
Encontré la siguiente solución: en el evento VS postbuild o en el script NAnt / MSbuild, ejecute el script cmd
handle.exe -p devenv [Path to the folder with locked files] > handles.txt
FOR /F "skip=5 tokens=3,4 delims=: " %%i IN (handles.txt) DO handle -p %%i -c %%j -y
handle.exe está disponible aquí http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx
La primera línea del script se vuelca a handles.txt. Todos los identificadores para archivos bloqueados por la segunda línea VS manejan identificadores del archivo y matan los identificadores.
Después de que se ejecuta la secuencia de comandos, los archivos pueden ser eliminados / reemplazados / movidos, etc.
Mi solución de estudio visual incluye una aplicación web y una aplicación de prueba unitaria. Mi aplicación web usa log4net. Quiero poder usar msbuild desde la línea de comandos para construir mi solución. Sin embargo, siempre que construyo la solución desde la línea de comandos, obtengo errores de compilación porque no puede copiar log4net.xml en el directorio bin del proyecto de prueba.
El mensaje de error es:
"No se puede copiar el archivo ''/ bin / log4net.xml'' a ''bin / Debug / log4net.xml''. Se deniega el acceso a la ruta ''/ bin / log4net.xml''."
Parece que Visual Studio está bloqueando este archivo, pero no puedo entender por qué lo necesitaría. ¿Hay alguna manera de evitar que VS bloquee los archivos de documentación XML en un proyecto que ha cargado?
Básicamente no verifique los archivos en la carpeta bin, es una mala idea.
Puede colocar este archivo en otro directorio y hacer referencia desde allí o colocar el código que lo usa en una biblioteca y hacer que el evento de compilación posterior lo copie en su directorio bin y luego haga referencia.
Msbuild luego lo copiará en el directorio bin de los proyectos web :)
Tenemos este problema exacto con las personas que registran cosas en el directorio bin, a menos que tenga absolutamente que los directorios bin no estén registrados o simplemente tengan archivos .refresh para evitar este tipo de problemas de bloqueo.
Un poco tarde en la respuesta, lo siento :)
También tuve este problema con Visual Studio. Usamos NAnt en lugar de MSBuild, pero el problema es el mismo. Pude solucionar el problema modificando el archivo de compilación para ignorar los fallos al copiar la documentación xml.
Tenga en cuenta que esto en realidad no resuelve el problema original, ya que los archivos xml todavía están bloqueados, pero esta solución fue lo suficientemente buena para nosotros, ya que el contenido real de nuestra documentación xml no cambia muy a menudo.
Krystan escribió:
Puede colocar este archivo en otro directorio y hacer referencia desde allí o colocar el código que lo usa en una biblioteca y hacer que el evento de compilación posterior lo copie en su directorio bin y luego haga referencia.
Nuestro problema de bloqueo de archivos xml no está en el directorio bin de proyectos, sino en un directorio de referencia externo. Lo pulsamos al realizar TortoiseSVN-> Actualizar donde hay una nueva versión disponible. Asumiendo que es porque VS está usando el archivo para intellisense.
Para aquellos que aciertan a este problema de bloqueo debido a TortoiseSVN-> Update, actualmente estoy experimentando con un gancho de pre-actualización que borra los archivos ofensivos antes de actualizarlos (se restaurarán si no se necesita ninguna actualización), hasta ahora esto parece funcionar (lo cual es extraño) pero no lo he probado lo suficiente como para decirlo con seguridad. Actualizará esta respuesta si resulta confiable.
Aquí esperamos que MS lo solucione en VS 2010.
Si está de acuerdo en omitir por completo los archivos xml y pdb de la salida, puede pasar /p:AllowedReferenceRelatedFileExtensions=none
a msbuild en la línea de comandos.
(Gracias a la respuesta relacionada https://.com/a/8757941/251011 )
EDITAR: Si también tiene problemas con los archivos dll que tienen este error, recientemente descubrí una solución de variable de entorno: https://.com/a/23069603/251011