Removing Version Number in BTDFPROJ

Topics: General Questions, Getting Started/Beginner, Tips and Tricks
Dec 7, 2010 at 2:24 PM

Hi all,

I am trying to remove the version number from the btdfproj file because our biztalks applications don't need versioning and we dont want to have the version number embedded in the name of the MSI File  ,so I removed the following line from the btdfproj file:


but I am getting this error while trying to generate the MSI for the project:

"H:\Projects\AdeccoWeb\Main\Core\BizTalk\CapGemini.Adecco.AW.Bts.Core\CapGemini.Adecco.AW.Bts.Core.Deployment\CapGemini.Adecco.AW.Bts.Core.Deployment.btdfproj" (Installer target) (1) ->
(Installer target) ->

  C:\Program Files\Deployment Framework for BizTalk\5.0\Developer\GenericBizTalkMSI.wxs(12): error CNDL0006: The Product/@Version attribute's value cannot be an empty string.  If you want the value to be null or empty, simply remove the entire attribute.
  C:\Program Files\Deployment Framework for BizTalk\5.0\Developer\GenericBizTalkMSI.wxs(12): error CNDL0010: The Product/@Version attribute was not found; it is required.

    0 Warning(s)
    3 Error(s)

Any idea about how can I do this ? any help will be welcome !

thanks a advance!


Dec 7, 2010 at 4:03 PM

Hi Julian,

How can you tell one build from another when it's deployed on the server without any version number?  Personally, each time I build a new MSI to deploy on the server, I increment the minor version in ProductVersion.  ProductVersion has no relation to the DLL versions, only the MSI.

Are you mainly concerned with changing the name of the MSI to not include the version?  Unfortunately, there is no extensibility point after the MSI file is written out, and as you discovered, you cannot simply delete the MSBuild property.  It's written into the MSI's version number and it shows up in Add/Remove Programs.  If you're calling the MSBuild Installer target from an automated script, your best bet would be to add a step to that script to simply rename the MSI to whatever you want.



Dec 7, 2010 at 4:57 PM

Hi Tom !

Thanks for your quick answer, yes you right. I explained my problem in the wrong way, what we really want is to supress the product version number from the name of the MSI file. because we use commands to install these msi and we don't want to change the version number each time we generated a new install.

I will try your suggestion!

Thanks again!


Dec 7, 2010 at 8:05 PM

Hi Again Tom !

I followed your recomendation, but the problem is internally the MSI creates in the INSTALL folder another folder with the Product Number:

We install the application in a silent way invoking this command from a script:

start /wait "" msiexec /i "C:\.AW.Bts.Core.msi" INSTALLDIR=C:\Program Files\AW.Bts.Core  /q

the problem is thay the MSI creates an addtional folder in the INSTALLDIR:

C:\Program Files\AW.Bts.Core\6.8.0

How can I avoid this ?

Thanks again !


Dec 7, 2010 at 9:50 PM

Hi Julian,

To change that you'll have to modify a file in the Deployment Framework: Developer\generate-install-script.js.

You can probably change the line:
f.WriteLine("  <Directory Id=\"ProductDir\" Name=\"$(var.ProductName)\">");
f.WriteLine("  <Directory Id=\"INSTALLDIR\" Name=\"$(var.ProductName)\">");

and delete the line:
f.WriteLine("  <Directory Id=\"INSTALLDIR\" Name=\"$(var.ProjectVersion)\">");

See if that works for you.


Dec 10, 2010 at 3:36 PM

thanks Tom !!

It worked out ! it would be nice for the next release of the framework to have the chance of configure this setting from the btdfproj file, the frameworkl is amazing and I think it's a great tool !!


Dec 10, 2010 at 9:52 PM

Great!  Thanks so much for the positive comments!