Como posso limitar meus eventos pós-compilação à execução apenas para um tipo de compilação?
Estou usando os eventos para copiar arquivos DLL para um diretório virtual do IIS local, mas não quero que isso aconteça no servidor de compilação no modo de lançamento.
Para sua informação, você não precisa usar o goto. O comando shell IF pode ser usado com colchetes:
fonte
"$(ConfigurationName)"
(aviso as aspas) se você obter o código de erro 255$(ConfigurationName)
está vazio (linha de comando do evento pós-compilação).if "$(Configuration)" == "Debug"
trabalhou para mim. BTW, se você quiser fazer algo em todas as outras configurações, useif NOT "$(Configuration)" == "Debug"
.Adicione seu evento de criação de postagem normalmente. Em seguida, salve seu projeto, abra-o no Bloco de notas (ou no seu editor favorito) e adicione condição ao grupo de propriedades PostBuildEvent. Aqui está um exemplo:
fonte
cd "$(ProjectDir)"
expandido paracd ""
.<Target Name="PostBuild" AfterTargets="PostBuildEvent" Condition="$(ConfigurationName) == Debug"> <Exec Command="your command"/></Target>
. Variáveis de macro e tudo funcionam normalmente.Como alternativa (como os eventos são colocados em um arquivo em lotes e depois chamados), use o seguinte (na caixa de eventos Build, não em um arquivo em lotes):
Dessa forma, você pode ter eventos para qualquer configuração e ainda gerenciá-los com as macros, em vez de passar para um arquivo em lotes, lembre-se de que
%1
é$(OutputPath)
etc.fonte
Error 1 The command "C:\MyProject\postbuild.bat" exited with code 99. MyProject
if
e usargoto :$(ConfigurationName)
Visual Studio 2015: A sintaxe correta é (mantenha-a em uma linha):
Nenhum erro 255 aqui.
fonte
No Visual Studio 2019, o
.csproj
formato moderno suporta a adição de uma condição diretamente noTarget
elemento:A interface do usuário não fornece uma maneira de configurar isso, mas parece deixar o
Configuration
atributo com segurança se você fizer alterações por meio da interface do usuário.fonte
Você pode passar o nome da configuração para o script pós-compilação e verificá-lo para ver se ele deve ser executado.
Passe o nome da configuração com
$(ConfigurationName)
.A verificação é baseada em como você está implementando a etapa pós-compilação - será um argumento da linha de comandos.
fonte
Isso funciona para mim no Visual Studio 2015.
Copio todos os arquivos DLL de uma pasta localizada em uma pasta da biblioteca no mesmo nível da pasta da minha solução no diretório de destino do projeto que está sendo criado.
Usando um caminho relativo do diretório do meu projeto e subindo a estrutura de pastas duas etapas com .. \ .. \ lib
MySolutionFolder
.... MyProject
Lib
fonte
Como qualquer configuração de projeto, os eventos de construção podem ser configurados por Configuração. Basta selecionar a configuração que você deseja alterar na lista suspensa da caixa de diálogo Propriedades e editar a etapa de pós-compilação.
fonte
No Visual Studio 2012, você precisa usar (acho que também no Visual Studio 2010)
$(ConfigurationName)
foi listado como uma macro, mas não foi atribuído.Compare: macros para comandos e propriedades de compilação
fonte