我目前正在为网络项目设置构建服务器。我正在使用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".
部署路径确实包含调试路径。我做错了什么?
答案 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>