views:

439

answers:

2

I read quit a few Stackoverflow Questions about building mergemodules via commandline but all of them were accepted when either somebody suggested to use devenv for compilation or use Dark to create wix-files from existing msi files.

Considering the following:

  • VisualStudio isn't installed on the buildserver I have to use.
  • I am using nant + msbuild to compile the solutions
  • I would like to compile mergemodules from .vdroj (because Visualstudio detects dependencys automatically)
  • and create a msi setup from multiple mergemodules

... how can I build the merge modules from commandline without devenv and without loosing the comfort of automated dependencie resolving for mergemodules in visualstudio? Maybe there is a nanttask for it I haven't found?

A: 

I would be pretty surprised if you are able to build .vdproj files without installing Visual Studio.

Sayed Ibrahim Hashimi
Faisal Mohamood MSFT, Manager on the MSBuild team said: "[...] deployment projects are not supported via the MSBuild task, [...] We expect to work on enabling this scenario in one of the future releases."He said that years ago in this msdn conversation http://snurl.com/seu1c . So I wouldn't be surprised at all. In fact I am surprised that MSBuild still seems to be unable to compile vdproj.
tobsen
+3  A: 

MSBuild doesn't support Visual Studio deployment projects, my advice would be to bite the bullet and go with Wix.

Perhaps VS2010 will use MSBuild schema for vdproj files? I'm guessing no, but couldn't find any links.

Si
Is there a userfriendly way to build mergemodules? I am not keen on putting lots of xml together manually.
tobsen
Merge modules are built the same way as normal MSI files, just a property change. You can use 'heat' to harvest files, see http://wix.mindcapers.com/wiki/Heat
Si
Thanks for pointing that out. However this is really annoying, imo: "However, heat is considerably less useful after initial project setup, because there is no way to preserve component GUIDs when repeating the process to acquire new files."
tobsen
Ah, I haven't worked with heat that much, but I do know that if you go with a one file per component approach, then it's possible to wildcard your GUID. There are a few rules and caveats, but perhaps you could do attempt some post-heat (regex) process to wildcard your GUIDs?
Si