Pergunta

Eu tenho uma solução que é implantado usando ClickOnce.

Trata-se de uma aplicação, vários conjuntos referenciados e um banco de dados SQL Server Compact.

Existe também um conjunto que não é referenciado pela aplicação principal, mas simplesmente carregado no tempo de execução. Esta montagem tem de ser implantado juntamente com a aplicação, no mesmo diretório que os binários do aplicativo.

Eu configurar o Visual Studio para copiar o "plugin" montagem para o \ bin \ debug (ou \ bin \ release) diretório do projeto UI após a compilação.

Eu adicionei então o arquivo para o projeto de interface do usuário, não como uma referência, mas simplesmente como um arquivo. I definir a ação de compilação de "Conteúdo", este forma como ele aparece nas Propriedades / publicar os diálogos do projeto UI.

Quando eu publicado pela primeira vez o aplicativo, ele trabalhou como um encanto. Mas então eu atualizei o plugin assembly, mesmo deu-lhe um número de versão diferente e publicado novamente, só para encontrar a assembléia não tinha sido atualizado, mas o primeiro uma vez carregado ainda estava sendo usado. (Mesmo em um computador limpo, sem antes instalar).

Eu fiz alguma escavação e descobriu que o conjunto (LibComposites.dll) foi copiado tanto para o diretório onde os aplicativos ClickOnce armazenar seus binários como o diretório onde armazenar os arquivos de dados.

Em ambos os casos, a primeira versão já publicada.

Na visão geral, eu tenho um aplicativo que faz referência algumas montagens:

referências CONTROL.EXE -> LibLLC.dll, LibDataLayer.dll, LibLLCExtenders.dll
cargas em runtime -> LibComposites.dll (que também faz referência LibLLC.dll)

Eu preciso implantar uma nova versão do LibComposites.dll para o mesmo diretório como a aplicação que cada publicar.

Porque é que a primeira versão já publicada de que a montagem ainda está sendo usado

Como posso forçar LibComposites.dll para ser substituído por cada publicar?

Foi útil?

Solução

Tudo bem, eu tinha o problema MESMO. Aqui está como eu resolvê-lo (pode não ser o ideal, mas funciona.

1) Se o seu dll ou o arquivo está dentro da solução, eu iria tirá-lo e re add-lo. 2) Vá dentro da propriedade de seu projeto e selecione Publicar e arquivos do aplicativo. Você precisa ter o seu arquivo lá e para selecionar novamente "Incluir" (não o Auto um ...).

Do que você será capaz de publicar com o novo. Eu não sei por que ele não funciona se eu não fazer isso, mas cada Publicar, eu tenho que fazer estes passos para ser capaz de obter a última versão ...

Outras dicas

Deixe-me obter este direito:? Você estiver usando recurso de publicação do Visual Studio para criar e implantar o pacote ClickOnce

Boa sorte com isso.

Você pode ser melhor fora construir seus próprios pacotes de ClickOnce usando Mago .

I começou a descer a rota Visual Studio, e rapidamente descobriu que era o caminho para a miséria. Aprenda a usar o Mago, e depois olhar para algumas das opções MSBuild para "automatizar" isso.

Eu tive o mesmo problema. A questão era que eu tinha a dll está no diretório raiz do aplicativo e eles estavam "in" no projeto.

A solução é fácil, basta excluir os arquivos DLL do projeto e esta questão vai embora.

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