Welcome to MSDN Blogs Sign in | Join | Help

Why does ICE16 complain about product names longer than 63 characters?

If you merge in the Internal Consistency Evaluators into your MSI package, you may run into error ICE16, complaining that the product name is longer than 63 characters. Why is this so bad?

Well, it isn't really, at least not any more. The original Windows 95 version of the Add/Remove Programs control panel did limit product names to 63 characters. (If you had a longer name, it didn't show up at all because the call to RegQueryValueEx failed with ERROR_MORE_DATA.) This limit was raised to around 259 characters starting with Windows 2000, the version that introduced the fancy list with icons and sizes. However, ICE rule 16 still checks against the old limitation because it doesn't know whether or not your program was designed to run on versions of Windows prior to Windows 2000.

If your program doesn't install on those older versions of Windows, then you can disregard the 63-character limit; the new limit is approximately 259 characters.

Published Tuesday, October 09, 2007 7:00 AM by oldnewthing
Filed under:

Comments

# re: Why does ICE16 complain about product names longer than 63 characters?

Tuesday, October 09, 2007 11:06 AM by Erzengel

A product name more than 63 characters? Are they including the entire company mission statement or something? Eeesh.

# re: Why does ICE16 complain about product names longer than 63 characters?

Tuesday, October 09, 2007 11:16 AM by pcooper

Do you say "approximately 259" because you're not sure, or because it varies based on something?

[Because I don't care. -Raymond]

# re: Why does ICE16 complain about product names longer than 63 characters?

Tuesday, October 09, 2007 11:22 AM by Sp

>> A product name more than 63 characters? Are they including the entire company mission statement or something? Eeesh.

microsoft windows server 2003 small business server service pack 2

66 characters.

But we know, 640K.. err! 63 characters is enough for everyone.

# re: Why does ICE16 complain about product names longer than 63 characters?

Tuesday, October 09, 2007 11:37 AM by benjamin

I kind of wish that this was still enforced, actually.

I get tired of seeing programs that display as "Broderbund Presents a Maxis Program by Berkeley Systems: Kid Pix 2008." This goes double for programs that use the same text in the folder they create as part of the Start Menu registration, causing that lovely effect where your Programs menu becomes the width of a widescreen monitor.

Obviously this isn't Microsoft's fault, so I guess I'm just ranting.

# re: Why does ICE16 complain about product names longer than 63 characters?

Tuesday, October 09, 2007 11:45 AM by John

The longest entry under "Add/Remove Programs" on my computer (XP Pro SP2) is "Security Update for Microsoft Visual Studio 2005 Team Edition for Software Developers - ENU (KB937061)" at 102 characters.  Do I win a prize?

# re: Why does ICE16 complain about product names longer than 63 characters?

Tuesday, October 09, 2007 11:50 AM by John

I'm also unsure about the 259 limit.  From my understanding, MAX_PATH is 260 to account for drive specification (i.e. "C:\\") and a path of 256 characters (including a NULL terminator).  256 would make more sense than 260 (why would you worry about drive specification in product name?), but I guess everybody uses MAX_PATH size buffers for everything so why not use it for this as well.

# re: Why does ICE16 complain about product names longer than 63 characters?

Tuesday, October 09, 2007 11:51 AM by Erzengel

>>>microsoft windows server 2003 small business server service pack 2

>>>66 characters.

That sounds pretty close to a "mission statement" to me... Do you really need the "Small Business"? It's not like you're going to have Small Business and Corporate installed at the same time. Do you really need to say "Service Pack 2" when you could say "SP2"? This is almost like one of those developer "taxes" that needs to be paid--stop with the ultra-long names. I don't want to have to read all of that, and when a user sees such a long name they'll briefly be confused (see that book which says you can only hold 5 things in your head at once).

>>>But we know, 640K.. err! 63 characters is enough for everyone

The line has to be drawn somewhere. Personally I prefer the line to be drawn just before where the storage can't hold it, like 255 so you can store the length in a byte, or 65535 so you can store it in an 4-byte int (which is why CIL allows for for way too many arguments--when are you going to have more than 255 arguments being passed into a function? If I'm a developer on your SDK and I need to pass 1000 arguments to your function, I'll be "a little bit annoyed".)

# re: Why does ICE16 complain about product names longer than 63 characters?

Tuesday, October 09, 2007 11:57 AM by Jonathan O'Connor

Why 259? That's a weird number. Are you sure the 9 is the right way up :-)

# re: Why does ICE16 complain about product names longer than 63 characters?

Tuesday, October 09, 2007 12:54 PM by Thoe

Bigger, ehh longer isnt always better - a product name should IMHO be able to fit 63-characters, my advice would if you get this warning: Try to make the name shorter!

ie. "Microsoft Windows Server 2003 SMB - SP2" is just fine...

This whole topic remind of another post:

"The most important choice in writing is not what you say, it's what you don't say"

[Writing clarity sometimes loses to legal issues such as trademark law. -Raymond]

# re: Why does ICE16 complain about product names longer than 63 characters?

Tuesday, October 09, 2007 3:50 PM by ::Wendy::

I think John should get a prize.

My longest (on Vista) string scraped in at the old-style 63 characters from a company who's legal team are necessarily heavy influencers the design procese:

Microsoft Save as PDF Add-in for 2007 Microsoft Office programs

# re: Why does ICE16 complain about product names longer than 63 characters?

Tuesday, October 09, 2007 5:57 PM by Igor

How about:

Intel(R) Integrated Performance Primitives 5.2 for Windows* on IA-32 Intel(R) Architecture

Btw, Raymond, is it 259 bytes or 259 (unicode) characters? :)

# re: Why does ICE16 complain about product names longer than 63 characters?

Tuesday, October 09, 2007 6:29 PM by Stewart

Just guessing, but IIRC MAX_PATH is 260, WCHAR programNameBuf[MAX_PATH] would give you 259 characters plus a \0 terminator - hence the old limit being 63, i.e. WCHAR programNameBuf[64]

# re: Why does ICE16 complain about product names longer than 63 characters?

Tuesday, October 09, 2007 6:52 PM by Rosyna

is it 63/259 characters or bytes or name/sizeof(UTF-16 char)==63/259?

I'm trying to think of the Korean children.

# re: Why does ICE16 complain about product names longer than 63 characters?

Wednesday, October 10, 2007 3:47 AM by Anon

I think MAX_PATH is 260 so you can have

C:\<256 chars><NUL>

Mind you 260 is multiple of 13, and there are 13 UC2-2 chars in a long filename in VFAT. So if you can do 256 you can also do 260. Maybe it dates back to Windows 98.

# re: Why does ICE16 complain about product names longer than 63 characters?

Wednesday, October 10, 2007 4:12 AM by Anon

Ooh, I know!

260 was considered a very lucky number by the long lived and peaceful Yn'Gon*Que aliens. They formed a short lived colony on Earth back in Jurassic Period (at spacetime coordinates 260,260,260,260,260) but they ran out of food, fought a terrible civil war, got hit by an asteroid shower and then decimated by a plague from Earth based bacteria.

They were eventually wiped out when the endless waves of giant carnivorous (and almost completely blaster proof) dinosaurs that had attacked their compound day and night since they arrived finally overwhelmed and ate their few living defenders.

# re: Why does ICE16 complain about product names longer than 63 characters?

Wednesday, October 10, 2007 4:14 AM by Anon

Ooh, I know!

260 was considered a very lucky number by the long lived and peaceful Yn'Gon*Que aliens. They formed a short lived colony on Earth back in Jurassic Period (at spacetime coordinates 260,260,260,260,260) but they ran out of food, fought a terrible civil war, got hit by an asteroid shower and then decimated by a plague from Earth based bacteria.

They were eventually wiped out when the endless waves of giant carnivorous (and almost completely blaster proof) dinosaurs that had attacked their compound day and night since they arrived finally overwhelmed and ate their few living defenders.

# re: Why does ICE16 complain about product names longer than 63 characters?

Wednesday, October 10, 2007 6:42 AM by Gedoe

@Anon :) but don't post it another 258 times :P

# re: Why does ICE16 complain about product names longer than 63 characters?

Wednesday, October 10, 2007 11:44 AM by LFN

"Microsoft RAW Image Thumbnailer and Viewer for Windows XP Version 1.0 (Build 50)" is the longest I got.

It's installed in "C:\Program Files\Pro Imaging Powertoys\Microsoft RAW Image Thumbnailer and Viewer for Windows XP".

# re: Why does ICE16 complain about product names longer than 63 characters?

Thursday, October 11, 2007 11:02 AM by SR

How about only putting the program name in the "program name".

eg: The program name is just "Word", Microsoft is the publisher, Office is the suite of programs and 2003 is the version. They are all important pieces of information, but they are NOT part of the program name. The program's window title and icon should read just "Word" - the user has no need for the other stuff.

New Comments to this post are disabled
 
Page view tracker