2010-01-28 147 views
3

我目前正在爲Web項目設置構建服務器。我正在使用Web部署項目來創建一個可部署的包,我想要做一些簡單的文件管理(複製webDeploy.config - > web.config並刪除.csproj文件)。Web部署項目AfterBuild路徑問題

我的目標如下所示:

<Target Name="AfterBuild">  
    <Delete Files="$(OutputPath)\*.csproj" /> 
</Target> 

然而,檢查WDP的輸出給了我這個

Target "AfterBuild" in file "C:\project\Deployment\Project.Deployment.wdproj": 
    Task "Delete" 
     File ".\Debug\*.*" doesn't exist. Skipping. 
    Done executing task "Delete". 
Done building target "AfterBuild" in project "Project.Deployment.wdproj". 

部署路徑確實包含調試路徑。我究竟做錯了什麼?

+0

Feedback is good。 – Filburt 2010-02-05 12:07:56

回答

7

如果你想使用通配符,您將擁有一個項目列表這麼做。項目列表將負責爲您擴展通配符。所以在你的情況下:

<Target Name="AfterBuild">  
    <ItemGroup> 
     <FilesToDelete Include="$(OutputPath)\*.csproj" /> 
    </ItemGroup> 
    <Delete Files="@(FilesToDelete)" /> 
</Target> 
+0

FilesToDelete錯字後不是第一個'='嗎? – UpTheCreek 2011-01-11 17:47:23

+0

@UpTheCreek,你是對的。我修復了它。謝謝。 – 2011-01-11 19:16:54

0

我自己試過了,很震驚,但解釋很簡單:你不能使用通配符MSBuild Team Blog)。

樣品:

<ItemGroup> 
    <ProjectConfigFiles Include="$(OutputPath)\*.csproj" /> 
</ItemGroup> 

<Target Name="AfterBuild">  
    <Delete Files="@(ProjectConfigFiles)" /> 
</Target> 
+0

實際上,有一種方法可以檢查Sayeds的答案。 – 2010-02-05 13:47:50