1
我對MSBuild的目標屬性和一般目標標記之間感到困惑。MSBuild的目標屬性和目標標記之間的區別
下面的代碼是否編譯成msbuild myapp.sln /t:Rebuild
並且在.NET中是「重建」預定義的目標。
<Target Name="Build" DependsOnTargets="Clean">
<MSBuild Projects="@(ProjectToBuild)" Targets="Rebuild"/>
</Target>
編輯:
<?xml version="1.0" encoding="utf-8" ?>
<Project DefaultTargets="Full" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>...</PropertyGroup>
<ItemGroup>...</ItemGroup>
<Target Name="Clean">
<Message Text="Cleaning..."/>
<RemoveDir Directories="$(BuildWebOutputDir);$(BuildRoot)" />
</Target>
<Target Name="Build">
<Message Text="Building solution..."/>
<MSBuild Projects="@(ProjectToBuild)" Targets="Rebuild">
</MSBuild>
</Target>
<Target Name="Copy">
<Message Text="Copying..."/>
<Exec Command="xcopy.exe $(BuildWebOutputDir) $(DistDir) /e /f /y /i" />
</Target>
<Target Name="Full" DependsOnTargets="Clean;Build;Copy">
</Target>
<Target>
</Project>
感謝您的回答。那麼,如果在MSBuild文件中定義了具有名稱重建的新目標,會發生什麼情況。是否獨立於預定義的一個因素我經常將目標名稱視爲構建,清理等。 – Sunny 2013-03-11 11:56:39
如果在導入導入的目標文件之前定義了一個名爲rebuild的新目標,則會使用導入的版本。如果您在此之後定義它,則新的替換導入的一個。你確定你的目標不在你的csproj之外嗎? – 2013-03-11 12:39:54
我已經包含用於MSBuild的配置文件。那麼,它是否執行配置文件中定義的所有目標,並執行項目「重建」。 – Sunny 2013-03-11 13:12:43