Blogus Maximus

Rubbing people the wrong way since 1970...

  Home  |   Contact  |   Syndication    |   Login
  1366 Posts | 10 Stories | 2225 Comments | 1336 Trackbacks

News


Google My Blog

Catch me at: The List!


My InstallScript Utility Belt My Amazon Wishlist
My Standard Disclaimer

Tag Cloud


Archives

Post Categories

Image Galleries

Blogs

Code Camps

CTown Geeks

Geeky Webcomics

High Geek

Magenic Blogs

Microsoft Blogs

My Articles

My Sites

PodCasts

UG

XNA

Installshield

My wishlist of things I think Installshield should address. Most are fairly minor, but would make my life easier as a developer. Some are more serious.
The Problem: Recently, I ran across a situation where we have an ASP.NET 1.1 app that we were installing onto a machine with the 2.0 .NET Framework already installed. When the virtual directory was created by the install, all the "non-application specific" file extensions were mapped to the 2.0 isapi.dll file. However, the "application specific" ones were mapped to the 1.1 isapi.dll. So, when I tried to hit the site the first time, a lot of stuff was screwed up. Going into IIS and remapping everything ......

Coming to Charleston, SC this September 17th...

MSDN CODE CAMP!

More info to follow at www.gcnug.org , although if you're interested in volunteering or speaking, contact me!

Chris


As many of you know, I've been using InstallShield a lot at work. For the most part, I really like it although it's not without it's share of issues. Recently, someone asked me why specifically I use InstallShield as opposed to Visual Studio .NET. Since I'm creating MSI installs, sure the InstallScript is nice but is there anything that I couldn't do in VS with VB and VBScript? Not having a great answer to the question, I decided it would only be fair to find out. So having said that, I'm going to ......

well... .NET Developers who use InstallShield at least. Remember my wishlist? I just got word from Bob Corrigan (InstallShield Product Manager) that #4 is being worked on! What's #4 you ask? 4. Please allow me to call .NET DLLs from InstallScript and retrieve a value from whatever function method I call. Currently I can only call C and COM+ DLLs. If I absolutely have to call my .NET DLL during the install, I have to either a) register it as COM+ (which I never got working quite right) or b) write ......

In addition to the handy stuff in my InstallShield utility belt, here's another VERY useful script, although this one should go in your Setup.rul file: function OnResumeUIBefore() STRING szMsg; NUMBER nResult;begin // change the interior-dialog banner DialogSetInfo(DLG_INFO_ALTI... SUPPORTDIR ^ "newbanner.bmp", TRUE); Dlg_Start: nResult = SdWelcome( "Upgrading your product", "The InstallShield Wizard will now upgrade your existing your product installation." ); if (nResult = BACK) goto Dlg_Start; ......

So... I've also been researching creating custom skins. So far I haven't had any real luck with that. InstallShield X (IS-X) ships with a handful of predefined skins. There is NO mechanism for discovery of new skins in IS-X. If you want to create a new skin, you actually have to manually alter one of the existing ready-made ones. There are a load of problems with the support for custom skins in IS-X. The biggest problem is that there ISN'T ANY SUPPORT! People who rely on the “community” ......

Installshield X ships with a handful of “skins” for their dialogs. You have blue, slate, monochrome (very sci-fi looking), true color blue, olive, midnight and my personal favorite: “NONE”. Why is this one my favorite? Well it's true the others look fairly cool, but they don't work with custom dialogs (even the same size and layout) and they don't even work reliably with the shipped dialogs. Just recently, I ran into a problem where I set my dialog skins to “true color ......

When you're working on an install, and you need to check for a specific version or Service Pack of SQL Server 2000, chances are you'll find this page very useful:  http://www.krell-software.com/mssql-builds.asp

I certainly did this morning.


My “never-ending“ crazy install project is finally nearing completion, and the time has come to create a custom skin. 1st - grab the IS X Skin Customization Kit: http://support.installshiel... hmmm... It appears that dialog images are measured in “dialog units” instead of pixels. There is no obvious correlation between the two. Also, according to Ritesh from InstallShield, if I want to remove the InstallShield logo from my dialogs... ......

I've received a few emails recently regarding the “InstallShield Utility Belt” (full of various InstallScript tidbits) I blogged a while ago. Since apparently a few people are finding it useful, I've copied it out to an article and put a link to it on my main blog page. This way I can update it as I come up with more stuff. Enjoy, and thanks for the positive feedback! Also, if anyone wants to send me any InstallScript code that they find useful, please do so. I can't guarantee I'll add ......

This is a little collection of routines I've written to make my life easier when using InstallShield. Use at your own risk. Modify to your heart's content. No warranties expressed or implied. Etc... ///////////////////////////... File Name: UsefulScripts.rul// Description: Reusable Installshield Scripts // Comments: Scripts that may prove to be handy in other installs// would go in this file. // ///////////////////////////... ......

12. In InstallScript, STRING variables can be up to 65535 characters in length, but String Literals are limited to 255 characters. This means I have to spoon feed long strings into a variable, so many characters at a time.

Please change this.


11. If I have a function in InstallScript that accepts a STRING by reference, let me pass in (and get back) a value from a STRING array. Where ReadKey is my function and the 4th parameter accepts a STRING ByRef...STRING szWebConfigKey(20); ...ReadKey(ISMSI_HANDLE, szInstallDir, "szWebConfigKey(6)); This throws an error at compile time. So I have to do this instead...STRING szWebConfigKey(20), szTemp;...ReadKey(ISMSI_HAN... szInstallDir, "szTemp);szWebConfigKey(6) = szTemp; I can do this in VB.NET ......

ok this is a two-parter... 10.a we need OPTIONAL parameters when creating InstallScript functions. 10.b. we need to be able to pass a param to an InstallScript function from a Custom Action. Why, you ask? Well... either would suffice. If I could supply a default value to an OPTIONAL param in an IS function, then I could (in theory) call it from a Custom Action (which currently doesn't support passing params to IS functions). Is there a workaround? Well yes, of course... I just write a wrapper function ......

Ok, the reason #9 didn't make any sense to me was because I had it wrong... sorta. (It's 1:43pm on 2/1/2005 for those of you keeping track!!) original post here: http://www.geekswithblogs.n... You can control the max input on an edit field, simply by sizing the edit field to the size you want. But... let's be honest this isn't always (ever?) practical. And if you want any uniformtity in the appearance of your UI, it's just not an option. You can set a flag via ......

9. Why can't I edit the max length of an edit field (textbox) in an InstallScript or InstallScript MSI project? I can do it in a regular Windows Installer project. This makes NO sense!


8. Please make an easy way (provide functions) to do these 3 things via InstallScript: a. Detect an existing Virtual Directory b. Create a new Virtual Directory c. Delete an existing Virtual Directory Via InstallScript is the key phrase here. I know you can do it in the Installation Designer. It's important to realize that there are currently ways to do 2 of these, but they are a royal pain. Even moreso because you have to do some of them differently in XP and Server 2003. (I know that isn't your ......

#7  Please please please give me an easy to use dialog that has a drop-down list control in it.  As it stands right now, I have to write entirely too much code to do this via the EzDefineDialog. Just give me a simple dialog that I can pass a variable of type LIST into.

Chris


I've been spending a lot of time working with Installshield X (yes I know there's a newer version) lately and I'm pretty frustrated. I wrote some pretty cool install helper functions in VB.NET and bundled them all up into a .dll. According to InstallShield, I should be able to call functions exposed in this dll in my InstallScript. Well yeah, sorta. The problem is, InstallShield only really supports this in two ways. The first way is great if you're using a C/C++ dll. Just prototype the functions ......

My InstallShield Wishlist for 2005 Please allow me to associate a component to more than one feature and provide different Destination Paths for each. Currently I have to create a new component with a different name for each feature I need to add it to (if I want different destination paths). This is horribly inefficient. Please allow me to programmatically disable (NOT HIDE) a feature via InstallScript. Currently InstallScript can only hide features, not simply disable them, but I want my users ......

Full Installshield Archive