Msbuild 从.vdproj生成不带Devenv的合并模块

Msbuild 从.vdproj生成不带Devenv的合并模块,msbuild,nant,merge-module,vdproj,devenv,Msbuild,Nant,Merge Module,Vdproj,Devenv,我读过一些关于通过命令行构建MergeModule的Stackoverflow问题,但当有人建议使用devenv进行编译或使用Dark从现有msi文件创建wix文件时,所有这些问题都被接受了 考虑到以下几点: VisualStudio未安装在我必须使用的buildserver上 我正在使用nant+msbuild编译解决方案 我想从.vdproj编译mergemodules(因为VisualStudio会自动检测依赖项) 并从多个合并模块创建msi设置 。。。如何从命令行构建合并模块,而不使

我读过一些关于通过命令行构建MergeModule的Stackoverflow问题,但当有人建议使用devenv进行编译或使用Dark从现有msi文件创建wix文件时,所有这些问题都被接受了

考虑到以下几点:

  • VisualStudio未安装在我必须使用的buildserver上
  • 我正在使用nant+msbuild编译解决方案
  • 我想从.vdproj编译mergemodules(因为VisualStudio会自动检测依赖项)
  • 并从多个合并模块创建msi设置
。。。如何从命令行构建合并模块,而不使用devenv,也不失去visualstudio中合并模块的自动依赖项解析的舒适性?
可能有一个任务我还没有找到?

如果您能够在不安装Visual Studio的情况下生成.vdproj文件,我会非常惊讶。

MSBuild不支持Visual Studio部署项目,我的建议是咬紧牙关,使用Wix


VS2010可能会对vdproj文件使用MSBuild模式?我猜没有,但找不到任何链接。

目前,无法使用msbuild执行此操作。但我很确定您可能对此感兴趣,因为您的问题与vs中的合并模块/安装项目有关。在visual studio的升级版本中,它们似乎不会继续支持.vdproj文件(2010将是最后一个支持它们的版本)

因此,即使使用devenv而不是msbuild,将来也可能会遇到问题


。。。但这篇文章也可能是某种耳语。不管怎么说,如果你想建立设置,还有很多选择。

即使是我也面临着同样的问题。使用以下格式

调用“C:\ProgramFiles(x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat“

“C:\Program Files(x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com“必需的\u path\solution.sln”/Project“必需的\u path\Setup\Setup.vdproj”/Build Release/Out “必需的\u路径\vs\u errors.txt”


是否有一种用户友好的方式来构建合并模块?我不喜欢手动将大量xml放在一起。合并模块的构建方式与普通MSI文件相同,只是属性更改。您可以使用“heat”来获取文件,请参阅,感谢您指出这一点。然而,这真的很烦人,imo:“然而,在初始项目设置之后,heat的用处要小得多,因为在重复获取新文件的过程时,没有办法保留组件GUID。”啊,我没有和heat一起工作过那么多,但我知道如果你采用每个组件一个文件的方法,然后可以通配符您的GUID。这里有一些规则和注意事项,但也许您可以尝试一些后期处理(regex)来通配符您的guid?我已经实现了它对我的工作Rerf:1。MSBuild团队的经理Faisal Mohamood MSFT说:“[…]部署项目不受MSBuild任务的支持,[…]我们希望在未来的一个版本中启用此方案。”他在几年前的msdn对话中说。所以我一点也不惊讶。事实上,我很惊讶MSBuild似乎仍然无法编译vdproj。被截断的链接不再起作用。以下是未剪切的链接:
cd /d Path_to_sln