如何在VS2010 Web部署生成模板中执行MSBuild任务?

4

我们最近从VS2008升级到了VS2010(因此从Web Deployment Project升级到了正确的Deployment项目)。

显然,VS2010 Web Deployments中的新功能是将工作流程作为构建过程模板引入。

以前,我们在WDP中使用MSBuild任务来执行Yahoo YUI JavaScript / CSS压缩模块,以使JavaScript和CSS文件被压缩/缩小。

有人成功使用Visual Studio 2010完成了这个任务吗?

我看到由Justin Etheridge创建的新的“SquishIt”压缩器,但它并不理想,因为它在运行时“压缩”(例如在Application_Start-Global.ascx上)-这意味着您仍然需要将所有未压缩的文件推送到Web服务器上才能进行压缩。

在Workflow设计器中,我可以看到一个名为“MSBuild”的工具箱项 - 只是不知道如何使用它来实现我想要的功能。

一直在寻找解决方案,但却没有人知道如何做。

编辑

近两周过去了,仍然没有解决方案/答案。肯定有人遇到过这个问题吧?现在,我们只能在构建后通过VS命令提示符手动执行MSBuild任务。

编辑

依旧没有任何进展!


很酷,那我不是一个人。=)目前我们只能通过MSbuild(Visual Studio命令提示符)手动运行DLL。我讨厌新的VS“强制”你学习Web部署的工作流程! - RPM1984
我最终选择了SquishIt,因为我找不到更好的解决方案。 - Andrew Dunkman
是的,SquishIt还可以,但正如我所说,我不喜欢将资产推送到实时服务器,然后再压缩它。您只需要推送实时服务器所需的内容即可。 - RPM1984
2个回答

1
你尝试过使用UpgradeTemplate吗?
它基本上执行一个MSBuild进程,并执行目标文件,就像它是2008年一样。

请再详细解释一下好吗?例如涉及哪些内容,如何在CI中启动等。 - RPM1984
在构建定义中,您可以从多个模板中选择。当您选择UpgradeTemplate时,基本上只有一个活动,那就是通过MSBuild执行目标文件。因此,您基本上使用的是TFS 2008运行构建的方式。您仍然可以使用CI触发器等功能。这里有一个小注意点:UpgradeTemplate使用的是MSBuild 4而不是TFS2008使用的MSBuild 3.5。它可能不会对您造成影响,但我听说有人遇到了这个问题。 - Ewald Hofman

0

最终使用了SquishIt。

这并不理想,因为文件在运行时被“压缩”。而且我认为只有“资产”应该部署到服务器上(例如预先压缩的文件)。

但是我没有其他选择。


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