Pergunta

Tenho uma aplicação ASP.NET que se baseia em um assembly externo que não está no GAC. O aplicativo tem um arquivo .refresh que copia o assembly no diretório bin quando o aplicativo é compilado.

Quando eu instalar o aplicativo em um servidor de produção (copiando os arquivos de aplicativos para um diretório virtual), o diretório bin não é atualizado automaticamente pela presença do arquivo .refresh como eu pensava que seria. Eu tentei usar a ferramenta aspnet_compiler mas que não funciona, uma vez que espera que as assembléias para estar no diretório bin já.

Como faço para obter .NET para atualizar o diretório bin do aplicativo sem visual studio?

Foi útil?

Solução

Os arquivos .Refresh estão lá apenas para que VS sabe que deve acompanhar os originais, e se eles mudaram, copiar uma nova versão para a pasta / bin. Eles são apenas arquivos de texto com um caminho para o original -. A data de modificação é usada para a comparação

Quando você diz:

Quando eu instalar o aplicativo em um servidor de produção (copiando os arquivos de aplicativos para um diretório virtual), o diretório bin não é atualizado automaticamente.

O que exatamente você quer dizer? Você também não copiar o conteúdo do diretório bin no servidor de produção? Você precisará implantar quaisquer assembleias dependentes com o aplicativo.

Outras dicas

Limpar o diretório de cache do asp.net podem ajudar:

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

Excluir esses arquivos .Refresh.

Faça um simples script de construção (usando o que quiser cmd, NAnt, Rake, psake ...) que:

  • cópias desses arquivos para o asp.net aplicativo pasta
  • construir você asp.net aplicativo.

Ou você pode editar o arquivo .csproj e adicionar algo como:

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

Isto irá adicionar uma ação de compilação pre que irá copiar seus arquivos DLL para a dir do seu aplicativo asp.net saída. Você vai ter que construí-lo com MsBuild

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top