La forma de hacerlo actualizar las referencias en aplicaciones ASP.NET sin Visual Studio?

StackOverflow https://stackoverflow.com/questions/868559

  •  22-08-2019
  •  | 
  •  

Pregunta

Tengo una aplicación ASP.NET que se basa en un conjunto externo que no está en el GAC. La aplicación tiene un archivo .Refresh que copia el montaje en el directorio bin cuando la aplicación se compila.

Cuando se instala la aplicación en un servidor de producción (copiando los archivos de aplicaciones en un directorio virtual), el directorio bin no se actualiza automáticamente por la presencia del archivo .Refresh como pensé que lo haría. He intentado utilizar la herramienta aspnet_compiler pero eso no quiere trabajar, ya que espera que los conjuntos estén en el directorio bin ya.

¿Cómo llego .NET para actualizar el directorio bin de la aplicación sin Visual Studio?

¿Fue útil?

Solución

Los archivos .Refresh sólo están ahí para que VS sabe que debe mantener un registro de los originales, y si han cambiado, copiar una nueva versión de la carpeta / bin. Ellos son sólo archivos de texto con un camino a la original -. La fecha de modificación se utiliza para la comparación

Cuando dice:

  

Cuando se instala la aplicación en un servidor de producción (copiando los archivos de aplicaciones en un directorio virtual), el directorio bin no se actualiza automáticamente.

¿Qué es exactamente lo que quiere decir? ¿No estás también copiando el contenido del directorio bin al servidor de producción? Usted tendrá que implementar los ensamblados dependientes con la aplicación.

Otros consejos

Borrar el directorio de caché de asp.net podría ayudar:

C:\WINDOWS\Microsoft.NET\Framework\
FRAMEWORK_VERSION\Temporary ASP.NET Files\YOUR_APP_NAME

Borrar los archivos .Refresh.

Hacer un simple script de construcción (con lo que quiera cmd de NAnt, Rastrillo, psake ...) que:

  • copia esos archivos a la carpeta de aplicaciones asp.net
  • que construir aplicación asp.net.

O puede editar el archivo .csproj y añadir algo como:

<ProjectExtensions>
  <PropertyGroup>
    <PreBuildEvent>copy c:\path\to\dll\files $(ProjectDir)$(OutDir)</PreBuildEvent>
  </PropertyGroup>
</ProjectExtensions>

Esto añadirá una acción de compilación preliminar que copiará los archivos DLL en el directorio de salida de su aplicación asp.net. Vas a tener que construirlo con MSBUILD

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top