目标CleanPublish在重建期间找不到发布文件夹

时间:2015-10-01 13:28:03

标签: .net visual-studio msbuild

我遇到了构建错误,其中在$(OutputPath)\app.publish文件夹中找不到某些.exe。

在执行GenerateManifest目标期间会出现问题,并且大约有50%的时间都会在重建时发生。

我的方案如下:我有一个包含多个项目的解决方案,其中2个或更多项目是通过clickonce发布的。项目是并行建立的。

1 个答案:

答案 0 :(得分:1)

好吧,我弄清楚发生了什么。我的方案如下:我有一个包含多个项目的解决方案,其中至少有2个是通过clickonce发布的,并且必须在构建期间完成清单生成。

问题是,我们有一个统一的输出文件夹。因此,所有项目都构建到同一文件夹,并且所有项目的发布文件夹都相同:$(OutputPath)\app.publish

为clickonce创建清单的MSBuild目标会查找此文件夹中的文件。完成业务后,它会删除该文件夹。

好吧,MSBuild一次构建(在我的机器中)4个项目,并且一个项目的清单生成最终在其他可发布项目使用的同时删除了发布文件夹。

我注意到目标(在Microsoft.Common.CurrentVersion.targets文件中)有条件删除发布目录:Condition="'$(PublishDir)'=='$(OutputPath)app.publish\' and Exists('$(PublishDir)')"

所以,我只是将$(PulishDir)设置为$(OutputPath)app.publish\$(AssemblyName)\

这样文件夹就不会被删除。好吧,即使它们是,每个项目现在都拥有它自己的发布文件夹。