Question

I've inherited an application which depends on a third-party library, which in turn depends on Visual J#.NET.

The application was previously being developed on Visual Studio 2005, and I've got it building mostly successfully on VS2008.

Amongst other components, it included a Deployment Project which built a couple of executables (plus dependencies, including this library) into an windows installer MSI.

As a result of the VJ# dependency, the Deployment Project was (apparently) using the VJSharpRedist_x86.msm merge module. This merge module appears to detect the existence of the VJ# package, and if not installed, prompt the user to download it from the web.

However no package I can find at the moment includes the merge module for VJ#. Although the project builds without error, the generated MSI fails to install. It starts, fails to detect the correctly installed VJ# on the machine, then displays a dialog box with only the text "1:" and two buttons "Yes" and "No". Clicking "Yes" opens up the url specified in the deployment project, and clicking "No" cancels the install.

(The executables which are packaged into the MSI work fine, if they are manually copied onto the machine, but the MSI refuses to install them.)

So far, I've installed:

Does anyone know where the merge module is located? Or how to correctly handle this launch condition in VS2008?

edit: clarifications.

Was it helpful?

Solution

To add Visual J# .NET Redistributable Package 2.0 to the project prerequisites, copy:

C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\VJSharpRDP

to

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages

Then you need to go into your deployment project, open the Launch Conditions Editor and remove the condition for Visual J# .NET (this is what removes the horrible blank dialog).

At this point setup.exe make sure J# is installed before your project msi launches.

OTHER TIPS

It's probably not the answer you're wanting to hear, but VJSharpRedist_x86.msm isn't supposed to be used for redistribution:

VJSharpRedist_x86.msm must not be used to redistribute the Microsoft Visual J# Redistributable Package

The merge module for the Visual J# Redistributable Package is not a redistributable merge module. It is added to a project as a mechanism for checking dependencies and is excluded by default.

http://msdn.microsoft.com/en-us/library/8f5w2e95(VS.80).aspx

It looks as though that MSM is just a wrapper for checking that the appropriate J# runtime is preinstalled on the target machine. You may find that the Visual J# Redist you have already downloaded is sufficient.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top