Czyszczenie kompilacji
Po wyczyszczeniu kompilacji wszystkie pliki pośrednie i wyjściowe zostaną usunięte, pozostawiając tylko pliki projektu i składnika. Z plików projektu i składnika można następnie skompilować nowe wystąpienia plików pośrednich i wyjściowych.
Tworzenie katalogu dla elementów wyjściowych
Domyślnie plik exe tworzony podczas kompilowania projektu jest umieszczany w tym samym katalogu co pliki źródłowe i projektu. Zazwyczaj jednak elementy wyjściowe są tworzone w osobnym katalogu.
Aby utworzyć katalog dla elementów wyjściowych
Property
Użyj elementu , aby zdefiniować lokalizację i nazwę katalogu. Na przykład utwórz katalog o nazwie BuiltApp w katalogu zawierającym pliki projektu i źródła:<builtdir>BuiltApp</builtdir>
Użyj zadania MakeDir, aby utworzyć katalog, jeśli katalog nie istnieje. Na przykład:
<MakeDir Directories = "$(builtdir)" Condition = "!Exists('$(builtdir)')" />
Usuwanie elementów wyjściowych
Przed utworzeniem nowych wystąpień plików pośrednich i wyjściowych można wyczyścić wszystkie poprzednie wystąpienia plików pośrednich i wyjściowych. Za pomocą zadania RemoveDir usuń katalog i wszystkie pliki i katalogi, które zawiera z dysku.
Aby usunąć katalog i wszystkie pliki zawarte w katalogu
RemoveDir
Użyj zadania , aby usunąć katalog. Na przykład:<RemoveDir Directories="$(builtdir)" />
Przykład
Poniższy przykładowy projekt kodu zawiera nowy element docelowy , Clean
który używa RemoveDir
zadania do usunięcia katalogu oraz wszystkich plików i katalogów, które zawiera. W tym przykładzie obiekt docelowy Compile
tworzy oddzielny katalog dla elementów wyjściowych, które są usuwane podczas czyszczenia kompilacji.
Compile
jest definiowany jako domyślny element docelowy i dlatego jest używany automatycznie, chyba że określisz inny element docelowy lub docelowy. Użyj przełącznika wiersza polecenia -target , aby określić inny element docelowy. Na przykład:
msbuild <file name>.proj -target:Clean
Przełącznik -target można skrócić do -t i może określić więcej niż jeden element docelowy. Aby na przykład użyć obiektu docelowegoClean
, wpisz :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>