Очистка сборки
При очистке сборки все промежуточные и выходные файлы удаляются, а остаются только файлы проекта и компонентов. Из файлов проекта и компонентов можно собрать новые экземпляры промежуточных и выходных файлов.
Создание каталога для выходных элементов
По умолчанию файл EXE, создаваемый при компиляции проекта, помещается в один каталог с файлами проекта и исходными файлами. Однако чаще выходные элементы создаются в отдельном каталоге.
Создание каталога для выходных элементов
Используйте элемент
Property
для определения расположения и имени каталога. Например, создайте каталог с именем BuiltApp в каталоге, содержащем файлы проекта и исходные файлы:<builtdir>BuiltApp</builtdir>
Используйте задачу MakeDir для создания каталога, если он не существует. Например:
<MakeDir Directories = "$(builtdir)" Condition = "!Exists('$(builtdir)')" />
Удаление выходных элементов
Прежде чем создавать экземпляры промежуточных и выходных файлов, попробуйте очистить все предыдущие экземпляры промежуточных и выходных файлов. Используйте задачу RemoveDir, чтобы удалить с диска каталог и все содержащиеся в нем файлы и каталоги.
Удаление каталога и всех файлов в нем
Используйте задачу
RemoveDir
, чтобы удалить каталог. Например:<RemoveDir Directories="$(builtdir)" />
Пример
Приведенный ниже проект с примером кода содержит новый целевой объект Clean
, который использует задачу RemoveDir
, чтобы удалить каталог и все содержащиеся в нем файлы и каталоги. Также в этом примере целевой объект Compile
создает отдельный каталог для выходных файлов, удаляемых при очистке сборки.
Compile
определяется как целевой объект по умолчанию и используется автоматически, пока вы не укажете другой целевой объект или несколько таких объектов. Используйте параметр командной строки -target, чтобы указать другой целевой объект. Например:
msbuild <file name>.proj -target:Clean
Параметр -target можно укоротить до -t. Кроме того, он может указывать сразу несколько целевых объектов. Например, чтобы использовать целевой объект Clean
и затем целевой объект Compile
, введите:
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>