Como: limpar uma compilação
Ao limpar uma compilação, todos os arquivos de saída e intermediários são excluídos, deixando somente os arquivos de projeto e o componente.Dos arquivos de projeto e de componente, arquivos de saída e de novas instâncias de intermediários podem então ser criados.A biblioteca de tarefas comuns que é fornecido com o MSBuild inclui um Exec tarefa que você pode usar para executar comandos do sistema.Para obter mais informações sobre a biblioteca de tarefas, consulte Referência de tarefa do MSBuild.
A criação de um diretório para itens de saída
Por padrão, o arquivo. exe que é criado quando você compila um projeto é colocado no mesmo diretório dos arquivos de origem e projeto.No entanto, normalmente, itens de saída são criados em um diretório separado.
Para criar um diretório para itens de saída
Use o Property elemento para definir o local e o nome do diretório.Por exemplo, crie um diretório chamado BuiltApp no diretório que contém os arquivos de origem e de projeto:
<builtdir>BuiltApp</builtdir>
Use o MakeDir tarefas para criar o diretório se o diretório não existir.Por exemplo:
<MakeDir Directories = "$(builtdir)"
Condition = "!Exists('$(builtdir)')" />
Remover os itens de saída
Para criar novas instâncias de arquivos de saída e intermediários, você talvez queira limpar anteriores de todas as instâncias de arquivos de saída e intermediários.Use o RemoveDir tarefa para excluir um diretório e todos os arquivos e diretórios que ele contém a partir de um disco.
Para remover um diretório e todos os arquivos contidos no diretório
Use o RemoveDir tarefa para remover o diretório.Por exemplo:
<RemoveDir Directories="$(builtdir)" />
Exemplo
O seguinte código exemplo de projeto contém um novo destino, Clean, que usa a RemoveDir tarefa para excluir um diretório e todos os arquivos e diretórios que ele contém.Também neste exemplo, o Compile destino cria um diretório separado para os itens de saída que são excluídos quando a compilação estiver limpo.
Compileé definido como o destino padrão e, portanto, é usado automaticamente a menos que você especifique um destino diferente ou destinos.Usar a opção de linha de comando /target para especificar um destino diferente.Por exemplo:
msbuild <file name>.proj /target:Clean
O /target switch pode ser reduzido a /t e pode especificar mais de um destino.Por exemplo, para usar o destino Clean , em seguida, o destino Compile, tipo:
msbuild <file name>.proj /t:Clean;Compile
<Project DefaultTargets = "Compile"
xmlns="https://schemas.microsoft.com/developer/msbuild/2003" >
<PropertyGroup>
<!-- Set the application name as a property -->
<name>HelloWorldCS</name>
<!-- Set the output folder as a property -->
<builtdir>BuiltApp</builtdir>
</PropertyGroup>
<ItemGroup>
<!-- Specify the inputs by type and file name -->
<CSFile Include = "consolehwcs1.cs"/>
</ItemGroup>
<Target Name = "Compile">
<!-- Check whether an output folder exists and create
one if necessary -->
<MakeDir Directories = "$(builtdir)"
Condition = "!Exists('$(builtdir)')" />
<!-- Run the Visual C# compiler -->
<CSC Sources = "@(CSFile)"
OutputAssembly = "$(BuiltDir)\$(appname).exe">
<Output TaskParameter = "OutputAssembly"
ItemName = "EXEFile" />
</CSC>
<!-- Log the file name of the output file -->
<Message Text="The output file is @(EXEFile)"/>
</Target>
<Target Name = "Clean">
<RemoveDir Directories="$(builtdir)" />
</Target>
</Project>