Limpar um build
Quando você limpa um build, todos os arquivos de saída e intermediários são excluídos, deixando apenas os arquivos de projeto e componente. Nos arquivos de projeto e de componente, novas instâncias dos arquivos de saída e intermediários podem ser criadas.
Criar um diretório para itens de saída
Por padrão, o arquivo .exe criado quando você compila um projeto é colocado no mesmo diretório dos arquivos de projeto e de origem. 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 elemento
Property
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 projeto e de origem:<builtdir>BuiltApp</builtdir>
Use a tarefa MakeDir 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
Antes de criar novas instâncias dos arquivos de saída e intermediários, é possível limpar todas as instâncias anteriores dos arquivos de saída e intermediários. Use a tarefa RemoveDir 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 a tarefa
RemoveDir
para remover o diretório. Por exemplo:<RemoveDir Directories="$(builtdir)" />
Exemplo
O seguinte exemplo de projeto de código contém um novo destino, Clean
, que usa a tarefa RemoveDir
para excluir um diretório e todos os arquivos e diretórios que ele contém. Também no exemplo, o destino Compile
cria um diretório separado para os itens de saída que são excluídos quando o build for removida.
Compile
é definido como o destino padrão e, portanto, é usado automaticamente a menos que você especifique um ou mais destinos diferentes. Use a opção de linha de comando -target para especificar um destino diferente. Por exemplo:
msbuild <file name>.proj -target:Clean
A opção -target pode ser abreviada como -t e pode especificar mais de um destino. Por exemplo, para usar o destino Clean
e, em seguida, o destino Compile
, digite:
msbuild <file name>.proj -t:Clean;Compile
<Project DefaultTargets = "Compile"
xmlns="http://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>