]> vjscor ClickOnce 🌐:aligrant.com

vjscor ClickOnce

Alastair Grant | Thursday 18 August 2011

Another day, another crappy application being flogged as an Enterprise quality product.

Somebody in our business wants to try out an application from some company, but the web-based installer (.NET ClickOnce) doesn't work.

It bails with an error:

Unable to install or run the application. The application requires that assembly vjscor Version 2.0.0.0 be installed in the Global Assembly Cache (GAC) first.

Simple, it's missing the "vjscor" assembly from .NET. Ah, but .NET 2.0 is installed, and so is the Visual J# Redistributable package. In fact, looking at the Global Assembly Cache the assembly is listed.

After much playing with Process Monitor I narrow it down to the installer looking for the assembly in the GAC_32 directory, when it doesn't find it, it bails. Checking the GAC again shows vjscor listed under MSIL processor architecture so the assembly is installed under the GAC_MSIL directory.

MSIL should be fine, as this will run on any CPU and get compiled by .NET JIT when it comes to execute, but for some reason something is hard-coded for the x86 version. A comparison of computers that the software does work on showed that those with it working had the assembly only for x86.

Turns out there are several versions of the J# Redistributable package. The one that installs vjscor into the x86 directory is J# Version 2.0 (note: not the second edition package, which installs the MSIL version).

You will need to remove all versions of the package before installing the correct version. Although you can then later reinstall the newer versions which will work along side (I think, I don't actually know anybody else who uses J#).

Breaking from the voyeuristic norms of the Internet, any comments can be made in private by contacting me.