Como fazer check-in de check-copy em um arquivo no TFS usando o evento Post-build?
Eu tenho um projeto segurando controles de servidor. Sempre que faço alterações nele, quero poder compilar no modo Release e ter a DLL de saída (e seu arquivo Xml de documentação) copiada para uma pasta no Team Foundation Server.
Eu saí com um evento pós-build que:
Verifica a DLL e o XML.Copia-os para a pasta TFSVerifica-os de volta com alguns comentários.Este é o script:
if $(ConfigurationName) == Release "$(DevEnvDir)tf" checkout /lock:none C:\CommonAssemblies\$(TargetFileName)
if $(ConfigurationName) == Release "$(DevEnvDir)tf" checkout /lock:none C:\CommonAssemblies\$(TargetName).xml
if $(ConfigurationName) == Release copy $(TargetDir)$(TargetFileName) C:\CommonAssemblies\ /Y
if $(ConfigurationName) == Release copy $(TargetDir)$(TargetName).xml C:\CommonAssemblies\ /Y
if $(ConfigurationName) == Release "$(DevEnvDir)tf" checkin C:\CommonAssemblies\$(TargetFileName) /noprompt /comment:"File checked in automatically by Post-build action in source project."
if $(ConfigurationName) == Release "$(DevEnvDir)tf" checkin C:\CommonAssemblies\$(TargetName).xml /noprompt /comment:"File checked in automatically by Post-build action in source project."
Isso funciona, mas somente se houver pelo menos uma alteração no código e pelo menos uma alteração em qualquer um dos comentários XML. Se eu tentar criar duas vezes sem nenhuma alteração, recebo um erro dizendo:
The command "if Release == Re...... " exited with code 1.
Como posso me livrar desse erro?
Na janela Saída, posso ler que o TFS detectou que não havia alterações no arquivo e Desfaz a edição.
O que posso adicionar à minha instrução de checkin para ignorar essa verificação quando nenhuma alteração é detectada? Eu tenho trabalhado até agora com esse script, mas devo lembrar cada vez de adicionar um espaço aleatório para o código e para algum comentário para que ele funcione corretamente. Deve haver algo que estou perdendo, talvez um parâmetro ou algo assim.
Aqui está parte do texto da janela Saída:
C:\CommonAssemblies:
Controls.dll
C:\CommonAssemblies:
Controls.xml
1 file(s) copied.
1 file(s) copied.
C:\CommonAssemblies:
Checking in edit: Controls.dll
Changeset #6188 checked in.
C:\CommonAssemblies:
Checking in edit: Controls.xml
The following changes were not checked in because the items were not modified.
Undoing edit: C:\CommonAssemblies\Controls.xml
There are no remaining changes to check in.