cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
tony12345678910
Level 3

IS Limited Edition Dependency Disaster

I spent hours trying to find out why our application would crash at startup with a System.BadImageFormatException exception. I could xcopy the files from my bin fold to the test machine and it ran fine, but if I installed with an IS setup package it would crash. Finally, I started examining all the DLL files with the CorFlags tool and found that one of the dependent DLL's (in-house assembly) was a newer version (and using .NET Framework 4 instead of 3.5) than what our application was using. I checked all the references in the solution and all were correct. I checked the version of the locally copied DLL's in the bin folder and all were correct. I cannot understand how ISLE selected the incorrect version of the DLL or how it even knew to look wherever it found it. It makes no sense. Also, our project references some Office interop files which were not picked up by ISLE but were detected in VS Installer. And ISLE included a lot of Crystal Reports DLL's that were an older version than what we are using, and it should not include any Crystal files since we redistribute the Crystal runtime separately.

Since there is a lot of noise about this on the net, I have to assume ISLE simply doesn't work (we had no issues with the VS Installer projects included previously with Visual Studio). ISLE does not give you the ability to manage your dependencies, which is a necessary feature of any install builder in my opinion. I was considering upgrading to Express, but I'm not sure I want anything to do with InstallShield given my first impression. Frankly, our setup package requirements are quite simple and this product fails at even this simple task. This tool isn't even as good as the VS Installer from what I've seen.

In the ISLE Options, .NET tab, I set "Default .NET Scan At Build File Setting" to None, but it is still scanning and including all the Crystal Reports DLL's. Does this not disable the dependency scanning????
0 Kudos
(3) Replies
Christopher_Pai
Level 16

First, some perspective. I've used Visual Studio Deployment Projects. Now *THAT* was dependency scanning hell. There was no way to turn it off. Period. You had to let it scan and then you could "exclude". But guess what? When it built on the build server it would scan again and put more things back in. It was so bad that we wrote build automation (EnvDTE) that would open a solution, let it scan, exclude everything and then pass it off to DevEnv.exe. Yes, DevEnv because it didn't even have MSBuild support.

Please, don't get me going.

Ok, back to ISLE. In Professional you go to Tools | Options and disable dependency scanning. But this is only for *NEW* components. In ISLE components are hidden ( just like VDPROJ ) and the depenency scanning property is found on the file properties. So do this:

Navigate to (2) Specify Application Data, Files
For every single DLL and EXE you find in the tree:
1) Right Click | Properties
2) Select the COM & .NET Settings tab
3) Set Scan at Build to None
0 Kudos
tony12345678910
Level 3

For my needs I did not struggle with the VS Installer. Perhaps my solutions with only 6 or 7 projects are not as complex as yours. Yes, we would sometimes choose to exclude certain files, but for the most part it worked very reliably, and at least we had the option to easily exclude them.

At any rate I've found an alternate installation builder that is easy to use and cost effective.

Thanks for the support.
0 Kudos
Christopher_Pai
Level 16

I suppose with the simplest of requirements, creating installers seems easy and the visual studio tool suffices. Both observations would be invalid though.
0 Kudos