Web部署项目AfterBuild路径问题

时间:2010-01-28 12:20:55

标签: asp.net msbuild web-deployment-project

我目前正在为网络项目设置构建服务器。我正在使用Web部署项目来创建可部署的程序包,我想进行一些简单的文件管理(复制webDeploy.config - > web.config并删除.csproj文件)。

我的目标如下:

<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".

部署路径确实包含调试路径。我做错了什么?

2 个答案:

答案 0 :(得分:7)

如果要使用通配符,则必须在项目列表中执行此操作。项目列表将负责为您扩展通配符。所以在你的情况下:

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

答案 1 :(得分:0)

我自己尝试了并且被震惊但解释很简单:你不能使用通配符MSBuild Team Blog)。

样品:

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

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