como você atualizar referências em aplicações ASP.NET sem visual studio?
-
22-08-2019 - |
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?
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 ??li>
- 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