2010-01-28 188 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