Como: Limpar uma compilação
Ao limpar uma compilação, todos os arquivos intermediários e de saída são excluídos, deixando somente o projeto e os arquivos de componente.Do projeto e arquivos de componente, novas instâncias de intermediários e arquivos de saída podem então ser criados.A biblioteca de tarefas comuns que é fornecida com 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 tarefas do MSBuild.
Criando um diretório para os itens de saída
Por padrão, o arquivo .exe que é criado quando você compila um projeto é colocado no mesmo diretório do projeto e arquivos de fonte.No entanto, normalmente, itens de saída são criados em um diretório separado.
Para criar um diretório de saída de itens
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 o projeto e arquivos de fonte:
<builtdir>BuiltApp</builtdir>
Use o MakeDir tarefa para criar o diretório se o diretório não existe.Por exemplo:
<MakeDir Directories = "$(builtdir)" Condition = "!Exists('$(builtdir)')" />
Removendo os itens de saída
Antes, para criar novas instâncias de arquivos intermediários e de saída, convém desmarcar anteriores todas as instâncias de arquivos intermediários e de saída.Use o RemoveDir tarefa para excluir um diretório e todos os arquivos e diretórios que ele contém 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 projeto de exemplo seguinte código contém um novo destino, Clean, que usa o RemoveDir Para excluir um diretório e todos os arquivos e diretórios que ele contém a tarefa. Também no exemplo, a Compile destino cria um diretório separado para os itens de saída são excluídos quando a compilação é limpo.
Compile é definido sistema autônomo o destino padrão e, portanto, é usado automaticamente, a menos que você especifique um destino diferente ou destinos. Usar comutador de linha de comando /target Para especificar um destino diferente. Por exemplo:
msbuild <file name>.proj /target:Clean
The /target comutador 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 -->
<appname>HelloWorldCS</appname>
<!-- 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>