Web部署项目AfterBuild路径问题

3

我正在为一个Web项目设置构建服务器。我使用Web Deployment Project创建可部署的包,并且我想进行一些简单的文件管理(复制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个回答

7

如果您想使用通配符,您需要在项目列表中进行。项目列表将自动为您展开通配符。因此,在您的情况下:

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

FilesToDelete 后的第一个 '=' 不是笔误吗? - UpTheCreek

0

我自己尝试了一下,感到很惊讶,但解释很简单:你不能使用通配符MSBuild Team Blog)。

示例:

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

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

实际上有一个解决方法,可以查看Sayeds的答案。 - Bartek Tatkowski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接