从.vdproj文件中构建合并模块而不使用Devenv

5
我阅读了很多关于通过命令行构建mergemodules的Stackoverflow问题,但其中所有问题都被接受,因为有人建议使用devenv进行编译,或者使用Dark从现有的msi文件创建wix文件。
考虑以下事项:
  • 在我必须使用的构建服务器上没有安装VisualStudio。
  • 我正在使用nant + msbuild来编译解决方案
  • 我想从.vdproj编译mergemodules(因为Visual Studio可以自动检测依赖关系)
  • 并从多个mergemodules创建msi安装程序
如何在没有使用devenv的情况下从命令行构建合并模块并且不失去Visual Studio中用于自动解决mergemodule依赖的便利性? 也许有一个nant任务可以完成它,但我还没有找到。
4个回答

5

MSBuild不支持Visual Studio部署项目,我的建议是勇敢尝试Wix。

也许VS2010会使用MSBuild模式来处理vdproj文件?我猜不会,但找不到任何链接。


有没有一种用户友好的方法来构建合并模块?我不太喜欢手动将大量的 XML 放在一起。 - tobsen
1
合并模块的构建方式与普通的MSI文件相同,只需要更改属性。您可以使用 'heat' 来收集文件,请参阅http://wix.mindcapers.com/wiki/Heat 。 - si618
谢谢指出这一点。然而,我认为这真的很烦人:“然而,在初始项目设置之后,热更新就变得相当无用了,因为在重复获取新文件的过程中无法保留组件 GUID。” - tobsen
啊,我没有太多处理Heat的经验,但我知道如果你采用每个组件一个文件的方法,那么可以使用通配符来替换GUID。有一些规则和注意事项,但也许你可以尝试一些后续的热度(正则表达式)处理来替换你的GUID? - si618
我已经实现了它的工作,参考:1. https://dev59.com/Bk3Sa4cB1Zd3GeqPze8B https://dev59.com/tWoy5IYBdhLWcg3wScLb?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa - Rajamohan Rajendran

0

我之前也遇到了同样的问题。请使用以下格式:

call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"

cd /d Path_to_sln

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com" "必须路径\solution.sln" /Project "必须路径\Setup\Setup.vdproj" /Build Release /Out "必须路径\vs_errors.txt"

0

目前,使用msbuild不可能实现这一点。但是我非常确定您可能会对此MSDN博客文章感兴趣,因为它与您关于在vs中合并模块/安装程序项目的问题有关。看来他们不会在即将推出的Visual Studio版本中继续支持.vdproj文件(2010将是最后一个支持它们的版本)。

所以即使你使用devenv而不是msbuild,将来也可能会遇到问题。

...但是这篇文章也可能是某种耳语。无论如何,如果您想构建设置,则道路上有很多替代方案。


-1

如果你能在没有安装Visual Studio的情况下构建.vdproj文件,我会非常惊讶。


微软的MSBuild团队经理Faisal Mohamood表示:“[...]不支持通过MSBuild任务进行部署项目[...]我们希望在未来的一个版本中实现这种情况。”他在多年前的msdn对话中说过这句话http://snurl.com/seu1c。所以我一点也不感到惊讶。事实上,我很惊讶MSBuild仍然似乎无法编译vdproj。 - tobsen
代码片段链接不再可用。以下是未剪切的链接:http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/6e213531-9d88-43ef-8262-fe0e4e7f479a/ - tobsen

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