473,320 Members | 1,950 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,320 software developers and data experts.

MSI error 1638 from depending on VC runtime

A project depends on VC runtime from Visual Studio 2005 SP1, and DotNet
Framework 2. Options are set in the setup project properties, so if these
two dependencies are not already installed then this installer will install
them.

But what about the situation where VC runtime has already been installed?
In fact it's been installed twice. Although the project was built on a
Windows XP system with Visual Studio 2005 SP1 and the results were copied to
a Vista system to be installed, it happens that this Vista system already
has Visual Studio 2005 SP1 plus Vista hotfix. And since a project which
requires VC runtime has already been installed on this Vista system, that
project's installer already installed a second copy of VC runtime. So here
we are with Visual Studio 2005 SP1 building an installer which tries to
install a third copy of VC runtime, and this fails with MSI error 1638.

Due to this failure, the installer proceeds to refuse to install the
application.

For some reason the installer figures out that DotNet Framework 2 is already
installed (one copy or two I'm not sure), so it doesn't try to install an
extra copy of that.

Since it seems that the maximum allowable number of redundant copies of the
VC runtime from Visual Studio 2005 SP1 is two, and a third one fails, is
there some way to tell Visual Studio 2005 SP1 to build an installer which
will only try to install the VC runtime when the maximum allowable number of
redundant copies hasn't been reached yet?

Here's the log of the installation failure.
The following properties have been set:
Property: [AdminUser] = true {boolean}
Property: [ProcessorArchitecture] = Intel {string}
Property: [VersionNT] = 6.0.0 {version}
Running checks for package '.NET Framework 2.0', phase BuildList
Running external check with command line
"E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\dot netfx\dotnetchk.exe" -lcid:1041
Process exited with code 2
Setting value '2 {int}' for property 'DotNetInstalled'
Reading value 'Version' of registry key 'HKLM\Software\Microsoft\Internet
Explorer'
Read string value '7.0.6000.16575'
Setting value '7.0.6000.16575 {string}' for property 'IEVersion'
The following properties have been set for package '.NET Framework 2.0':
Property: [DotNetInstalled] = 2 {int}
Property: [IEVersion] = 7.0.6000.16575 {string}
Running checks for command 'dotnetfx\instmsia.exe'
Result of running operator 'ValueExists' on property 'VersionNT': true
Result of checks for command 'dotnetfx\instmsia.exe' is 'Bypass'
Running checks for command 'dotnetfx\WindowsInstaller-KB893803-v2-x86.exe'
Result of running operator 'ValueExists' on property 'Version9x': false
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.0.3': false
Result of running operator 'VersionGreaterThanOrEqualTo' on property
'VersionMsi' and value '3.0': true
Result of checks for command 'dotnetfx\WindowsInstaller-KB893803-v2-x86.exe'
is 'Bypass'
Running checks for command 'dotnetfx\dotnetfx.exe'
Result of running operator 'ValueNotEqualTo' on property 'DotNetInstalled'
and value '0': true
Result of checks for command 'dotnetfx\dotnetfx.exe' is 'Bypass'
Running checks for command 'dotnetfx\langpack.exe'
Result of running operator 'ValueEqualTo' on property 'DotNetInstalled' and
value '2': true
Result of checks for command 'dotnetfx\langpack.exe' is 'Bypass'
'.NET Framework 2.0' RunCheck result: No Install Needed
Running checks for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)', phase
BuildList
Running MsiProductCheck with ProductCode
'{A49F249F-0C91-497F-86DF-B2585E8E76B7}'
MsiQueryProductState returned '-1'
Setting value '-1 {int}' for property 'VCRedistInstalled'
The following properties have been set for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)':
Property: [VCRedistInstalled] = -1 {int}
Running checks for command 'vcredist_x86\vcredist_x86.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property
'VCRedistInstalled' and value '3': false
Result of running operator 'ValueEqualTo' on property 'AdminUser' and value
'false': false
Skipping FailIf because Property 'Version9X' was not defined
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.00': false
Result of checks for command 'vcredist_x86\vcredist_x86.exe' is 'Install'
'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' RunCheck result: Install Needed
Installation of components 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' was
accepted.
Copying files to temporary directory
"E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp \"
Copying from
'C:\censored\CensoredSetup\Release\vcredist_x86\vc redist_x86.exe' to
'E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\vcr edist_x86\vcredist_x86.exe'
Running checks for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)', phase
BeforePackage
Running MsiProductCheck with ProductCode
'{A49F249F-0C91-497F-86DF-B2585E8E76B7}'
MsiQueryProductState returned '-1'
Setting value '-1 {int}' for property 'VCRedistInstalled'
The following properties have been set for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)':
Property: [VCRedistInstalled] = -1 {int}
Running checks for command 'vcredist_x86\vcredist_x86.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property
'VCRedistInstalled' and value '3': false
Result of running operator 'ValueEqualTo' on property 'AdminUser' and value
'false': false
Skipping FailIf because Property 'Version9X' was not defined
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.00': false
Result of checks for command 'vcredist_x86\vcredist_x86.exe' is 'Install'
'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' RunCheck result: Install Needed
Verifying file integrity of
E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\vcre dist_x86\vcredist_x86.exe
Verifying file hash
Installing using command line
'"E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\vc redist_x86\vcredist_x86.exe"
/q:a '
Process exited with code 0
Running checks for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)', phase
AfterPackage
Running MsiProductCheck with ProductCode
'{A49F249F-0C91-497F-86DF-B2585E8E76B7}'
MsiQueryProductState returned '-1'
Setting value '-1 {int}' for property 'VCRedistInstalled'
The following properties have been set for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)':
Property: [VCRedistInstalled] = -1 {int}
Running checks for command 'vcredist_x86\vcredist_x86.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property
'VCRedistInstalled' and value '3': false
Result of running operator 'ValueEqualTo' on property 'AdminUser' and value
'false': false
Skipping FailIf because Property 'Version9X' was not defined
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.00': false
Result of checks for command 'vcredist_x86\vcredist_x86.exe' is 'Install'
'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' RunCheck result: Unknown
Launching Application.
Using MsiInstallProduct with package path
'C:\censored\CensoredSetup\Release\LDAdjustmentSet up.msi' and command line
''
MsiInstallProduct returned '1638'
Error:
Status of package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' after install is
'InstallUnknown'

Dec 17 '07 #1
7 8397
Hi Norman,

i think the codepage you are using is japanese. Maybe you
want to switch to unicode UTF-X or western style, i mean
if this is accidentaly set.

The return code stands for the fact that your product has
been istalled twice, at least the Installer tells this. Check the
Error code with my tool if you like:
http://entwicklung.junetz.de/project...tionViewer.zip
Maybe this will help:

[Windows Installer CleanUp Utility]
http://support.microsoft.com/kb/290301/en-us

You can use this tool to remove the installer database settings for the
fauty
product if you like and reinstall the runtime or whatever at your own risk!

Use it at your own risk! But it helped me several times,...
Regards

Kerem


--
-----------------------
Beste Grusse / Best regards / Votre bien devoue
Kerem Gumrukcu
Microsoft Live Space: http://kerem-g.spaces.live.com/
Latest Open-Source Projects: http://entwicklung.junetz.de
-----------------------
"This reply is provided as is, without warranty express or implied."
Dec 17 '07 #2
Yes I am using Microsoft's Japanese code page. Windows comes that way, it's
the default in Outlook Express, and usually it can handle all of the
characters involved in my messages or my work.

Yes, before posting, I found what the error message is supposed to mean and
what it seems to be meaning in my case. Oddly it doesn't seem to be a
problem for VC runtime to be installed twice but the third time is the
killer.

http://entwicklung.junetz.de/project...tionViewer.zip

I'm afraid I only see a C# project there. I don't see a Visual Studio Setup
project that depends on VC runtime (should I have said VC++ runtime, i.e.
CRT and ATL). I don't see any useful options that I could copy into my
project.

http://support.microsoft.com/kb/290301/en-us

"If you use this utility, you may have to reinstall other programs."

So I really hesitate to include a copy of that utility in my setup project.
I suppose the idea would be to make my installer first uninstall any
existing (or second existing copy) of VC runtime before installing it again
as this setup program does now, but that might cause trouble for the end
user. If a program's installer destroys the functioning of other programs
then the program becomes really unpopular (except for a few famous
exceptions).

Do you know how to configure a Visual Studio Setup project in Visual Studio
2005 SP1 so that it will create a more sociable MSI package?
"Kerem Gumrukcu" <ka*******@hotmail.comwrote in message
news:%2****************@TK2MSFTNGP05.phx.gbl...
Hi Norman,

i think the codepage you are using is japanese. Maybe you
want to switch to unicode UTF-X or western style, i mean
if this is accidentaly set.

The return code stands for the fact that your product has
been istalled twice, at least the Installer tells this. Check the
Error code with my tool if you like:
http://entwicklung.junetz.de/project...tionViewer.zip
Maybe this will help:

[Windows Installer CleanUp Utility]
http://support.microsoft.com/kb/290301/en-us

You can use this tool to remove the installer database settings for the
fauty
product if you like and reinstall the runtime or whatever at your own
risk!

Use it at your own risk! But it helped me several times,...
Regards

Kerem


--
-----------------------
Beste Grusse / Best regards / Votre bien devoue
Kerem Gumrukcu
Microsoft Live Space: http://kerem-g.spaces.live.com/
Latest Open-Source Projects: http://entwicklung.junetz.de
-----------------------
"This reply is provided as is, without warranty express or implied."
Dec 17 '07 #3
There's a bug here. The issue is that the SP1 installation for the VC
runtime is (internally) a new MSI setup with a new product code, but the
package.xml that setup.exe uses is still looking for the RTM producty code.
It's mentioned here:
http://blogs.msdn.com/astebner/archi...-2005-sp1.aspx

The MsiProductCheck guid in Product.Xml for the VS 2005 SP1 VC redist is
incorrect.
--
Phil Wilson
[MVP Windows Installer]

"Norman Diamond" <nd******@community.nospamwrote in message
news:OR**************@TK2MSFTNGP04.phx.gbl...
>A project depends on VC runtime from Visual Studio 2005 SP1, and DotNet
Framework 2. Options are set in the setup project properties, so if these
two dependencies are not already installed then this installer will
install
them.

But what about the situation where VC runtime has already been installed?
In fact it's been installed twice. Although the project was built on a
Windows XP system with Visual Studio 2005 SP1 and the results were copied
to
a Vista system to be installed, it happens that this Vista system already
has Visual Studio 2005 SP1 plus Vista hotfix. And since a project which
requires VC runtime has already been installed on this Vista system, that
project's installer already installed a second copy of VC runtime. So
here
we are with Visual Studio 2005 SP1 building an installer which tries to
install a third copy of VC runtime, and this fails with MSI error 1638.

Due to this failure, the installer proceeds to refuse to install the
application.

For some reason the installer figures out that DotNet Framework 2 is
already
installed (one copy or two I'm not sure), so it doesn't try to install an
extra copy of that.

Since it seems that the maximum allowable number of redundant copies of
the
VC runtime from Visual Studio 2005 SP1 is two, and a third one fails, is
there some way to tell Visual Studio 2005 SP1 to build an installer which
will only try to install the VC runtime when the maximum allowable number
of
redundant copies hasn't been reached yet?

Here's the log of the installation failure.
The following properties have been set:
Property: [AdminUser] = true {boolean}
Property: [ProcessorArchitecture] = Intel {string}
Property: [VersionNT] = 6.0.0 {version}
Running checks for package '.NET Framework 2.0', phase BuildList
Running external check with command line
"E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\dot netfx\dotnetchk.exe" -lcid:1041
Process exited with code 2
Setting value '2 {int}' for property 'DotNetInstalled'
Reading value 'Version' of registry key 'HKLM\Software\Microsoft\Internet
Explorer'
Read string value '7.0.6000.16575'
Setting value '7.0.6000.16575 {string}' for property 'IEVersion'
The following properties have been set for package '.NET Framework 2.0':
Property: [DotNetInstalled] = 2 {int}
Property: [IEVersion] = 7.0.6000.16575 {string}
Running checks for command 'dotnetfx\instmsia.exe'
Result of running operator 'ValueExists' on property 'VersionNT': true
Result of checks for command 'dotnetfx\instmsia.exe' is 'Bypass'
Running checks for command 'dotnetfx\WindowsInstaller-KB893803-v2-x86.exe'
Result of running operator 'ValueExists' on property 'Version9x': false
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.0.3': false
Result of running operator 'VersionGreaterThanOrEqualTo' on property
'VersionMsi' and value '3.0': true
Result of checks for command
'dotnetfx\WindowsInstaller-KB893803-v2-x86.exe'
is 'Bypass'
Running checks for command 'dotnetfx\dotnetfx.exe'
Result of running operator 'ValueNotEqualTo' on property 'DotNetInstalled'
and value '0': true
Result of checks for command 'dotnetfx\dotnetfx.exe' is 'Bypass'
Running checks for command 'dotnetfx\langpack.exe'
Result of running operator 'ValueEqualTo' on property 'DotNetInstalled'
and
value '2': true
Result of checks for command 'dotnetfx\langpack.exe' is 'Bypass'
'.NET Framework 2.0' RunCheck result: No Install Needed
Running checks for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)', phase
BuildList
Running MsiProductCheck with ProductCode
'{A49F249F-0C91-497F-86DF-B2585E8E76B7}'
MsiQueryProductState returned '-1'
Setting value '-1 {int}' for property 'VCRedistInstalled'
The following properties have been set for package 'Visual C++ $B%i%s%?%$%`(B
$B%i%$%V%i%j(B (x86)':
Property: [VCRedistInstalled] = -1 {int}
Running checks for command 'vcredist_x86\vcredist_x86.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property
'VCRedistInstalled' and value '3': false
Result of running operator 'ValueEqualTo' on property 'AdminUser' and
value
'false': false
Skipping FailIf because Property 'Version9X' was not defined
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.00': false
Result of checks for command 'vcredist_x86\vcredist_x86.exe' is 'Install'
'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' RunCheck result: Install Needed
Installation of components 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' was
accepted.
Copying files to temporary directory
"E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp \"
Copying from
'C:\censored\CensoredSetup\Release\vcredist_x86\vc redist_x86.exe' to
'E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\vcr edist_x86\vcredist_x86.exe'
Running checks for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)', phase
BeforePackage
Running MsiProductCheck with ProductCode
'{A49F249F-0C91-497F-86DF-B2585E8E76B7}'
MsiQueryProductState returned '-1'
Setting value '-1 {int}' for property 'VCRedistInstalled'
The following properties have been set for package 'Visual C++ $B%i%s%?%$%`(B
$B%i%$%V%i%j(B (x86)':
Property: [VCRedistInstalled] = -1 {int}
Running checks for command 'vcredist_x86\vcredist_x86.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property
'VCRedistInstalled' and value '3': false
Result of running operator 'ValueEqualTo' on property 'AdminUser' and
value
'false': false
Skipping FailIf because Property 'Version9X' was not defined
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.00': false
Result of checks for command 'vcredist_x86\vcredist_x86.exe' is 'Install'
'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' RunCheck result: Install Needed
Verifying file integrity of
E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\vcre dist_x86\vcredist_x86.exe
Verifying file hash
Installing using command line
'"E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\vc redist_x86\vcredist_x86.exe"
/q:a '
Process exited with code 0
Running checks for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)', phase
AfterPackage
Running MsiProductCheck with ProductCode
'{A49F249F-0C91-497F-86DF-B2585E8E76B7}'
MsiQueryProductState returned '-1'
Setting value '-1 {int}' for property 'VCRedistInstalled'
The following properties have been set for package 'Visual C++ $B%i%s%?%$%`(B
$B%i%$%V%i%j(B (x86)':
Property: [VCRedistInstalled] = -1 {int}
Running checks for command 'vcredist_x86\vcredist_x86.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property
'VCRedistInstalled' and value '3': false
Result of running operator 'ValueEqualTo' on property 'AdminUser' and
value
'false': false
Skipping FailIf because Property 'Version9X' was not defined
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.00': false
Result of checks for command 'vcredist_x86\vcredist_x86.exe' is 'Install'
'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' RunCheck result: Unknown
Launching Application.
Using MsiInstallProduct with package path
'C:\censored\CensoredSetup\Release\LDAdjustmentSet up.msi' and command line
''
MsiInstallProduct returned '1638'
Error:
Status of package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' after install
is
'InstallUnknown'

Dec 17 '07 #4
I partly understand the bug, but I don't understand what to do about it.

Aaron Stebner wrote:
"This means that if you build a setup project in VS 2005 SP1 and include the
VC redist package as a prerequisite, your setup will end up downloading and
installing the VC redist package on systems that already have the original
VS 2005 version of this redist package installed. Because of the major
upgrade functionality, this will not harm users' systems at all, but it will
result in a slight time delay due to an unnecessary download and install."

The fact is, this will not harm users' systems at all because the installer
refuses to install the third copy of the VC redist and the installer refuses
to install the application. There's wasted time, and at the end of the
wasted time there is a no-op.

Can we use Visual Studio 2005 SP1 to build an installer that will get the
application installed onto the end users' machines? If so, how?
"Phil Wilson" <ph*********@wonderware.something.comwrote in message
news:eg*************@TK2MSFTNGP06.phx.gbl...
There's a bug here. The issue is that the SP1 installation for the VC
runtime is (internally) a new MSI setup with a new product code, but the
package.xml that setup.exe uses is still looking for the RTM producty
code. It's mentioned here:
http://blogs.msdn.com/astebner/archi...-2005-sp1.aspx

The MsiProductCheck guid in Product.Xml for the VS 2005 SP1 VC redist is
incorrect.
--
Phil Wilson
[MVP Windows Installer]

"Norman Diamond" <nd******@community.nospamwrote in message
news:OR**************@TK2MSFTNGP04.phx.gbl...
>>A project depends on VC runtime from Visual Studio 2005 SP1, and DotNet
Framework 2. Options are set in the setup project properties, so if
these
two dependencies are not already installed then this installer will
install
them.

But what about the situation where VC runtime has already been installed?
In fact it's been installed twice. Although the project was built on a
Windows XP system with Visual Studio 2005 SP1 and the results were copied
to
a Vista system to be installed, it happens that this Vista system already
has Visual Studio 2005 SP1 plus Vista hotfix. And since a project which
requires VC runtime has already been installed on this Vista system, that
project's installer already installed a second copy of VC runtime. So
here
we are with Visual Studio 2005 SP1 building an installer which tries to
install a third copy of VC runtime, and this fails with MSI error 1638.

Due to this failure, the installer proceeds to refuse to install the
application.

For some reason the installer figures out that DotNet Framework 2 is
already
installed (one copy or two I'm not sure), so it doesn't try to install an
extra copy of that.

Since it seems that the maximum allowable number of redundant copies of
the
VC runtime from Visual Studio 2005 SP1 is two, and a third one fails, is
there some way to tell Visual Studio 2005 SP1 to build an installer which
will only try to install the VC runtime when the maximum allowable number
of
redundant copies hasn't been reached yet?

Here's the log of the installation failure.
The following properties have been set:
Property: [AdminUser] = true {boolean}
Property: [ProcessorArchitecture] = Intel {string}
Property: [VersionNT] = 6.0.0 {version}
Running checks for package '.NET Framework 2.0', phase BuildList
Running external check with command line
"E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\do tnetfx\dotnetchk.exe" -lcid:1041
Process exited with code 2
Setting value '2 {int}' for property 'DotNetInstalled'
Reading value 'Version' of registry key 'HKLM\Software\Microsoft\Internet
Explorer'
Read string value '7.0.6000.16575'
Setting value '7.0.6000.16575 {string}' for property 'IEVersion'
The following properties have been set for package '.NET Framework 2.0':
Property: [DotNetInstalled] = 2 {int}
Property: [IEVersion] = 7.0.6000.16575 {string}
Running checks for command 'dotnetfx\instmsia.exe'
Result of running operator 'ValueExists' on property 'VersionNT': true
Result of checks for command 'dotnetfx\instmsia.exe' is 'Bypass'
Running checks for command
'dotnetfx\WindowsInstaller-KB893803-v2-x86.exe'
Result of running operator 'ValueExists' on property 'Version9x': false
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.0.3': false
Result of running operator 'VersionGreaterThanOrEqualTo' on property
'VersionMsi' and value '3.0': true
Result of checks for command
'dotnetfx\WindowsInstaller-KB893803-v2-x86.exe'
is 'Bypass'
Running checks for command 'dotnetfx\dotnetfx.exe'
Result of running operator 'ValueNotEqualTo' on property
'DotNetInstalled'
and value '0': true
Result of checks for command 'dotnetfx\dotnetfx.exe' is 'Bypass'
Running checks for command 'dotnetfx\langpack.exe'
Result of running operator 'ValueEqualTo' on property 'DotNetInstalled'
and
value '2': true
Result of checks for command 'dotnetfx\langpack.exe' is 'Bypass'
'.NET Framework 2.0' RunCheck result: No Install Needed
Running checks for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)',
phase
BuildList
Running MsiProductCheck with ProductCode
'{A49F249F-0C91-497F-86DF-B2585E8E76B7}'
MsiQueryProductState returned '-1'
Setting value '-1 {int}' for property 'VCRedistInstalled'
The following properties have been set for package 'Visual C++ $B%i%s%?%$%`(B
$B%i%$%V%i%j(B (x86)':
Property: [VCRedistInstalled] = -1 {int}
Running checks for command 'vcredist_x86\vcredist_x86.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property
'VCRedistInstalled' and value '3': false
Result of running operator 'ValueEqualTo' on property 'AdminUser' and
value
'false': false
Skipping FailIf because Property 'Version9X' was not defined
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.00': false
Result of checks for command 'vcredist_x86\vcredist_x86.exe' is 'Install'
'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' RunCheck result: Install Needed
Installation of components 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' was
accepted.
Copying files to temporary directory
"E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\ "
Copying from
'C:\censored\CensoredSetup\Release\vcredist_x86\v credist_x86.exe' to
'E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\vc redist_x86\vcredist_x86.exe'
Running checks for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)',
phase
BeforePackage
Running MsiProductCheck with ProductCode
'{A49F249F-0C91-497F-86DF-B2585E8E76B7}'
MsiQueryProductState returned '-1'
Setting value '-1 {int}' for property 'VCRedistInstalled'
The following properties have been set for package 'Visual C++ $B%i%s%?%$%`(B
$B%i%$%V%i%j(B (x86)':
Property: [VCRedistInstalled] = -1 {int}
Running checks for command 'vcredist_x86\vcredist_x86.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property
'VCRedistInstalled' and value '3': false
Result of running operator 'ValueEqualTo' on property 'AdminUser' and
value
'false': false
Skipping FailIf because Property 'Version9X' was not defined
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.00': false
Result of checks for command 'vcredist_x86\vcredist_x86.exe' is 'Install'
'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' RunCheck result: Install Needed
Verifying file integrity of
E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\vcr edist_x86\vcredist_x86.exe
Verifying file hash
Installing using command line
'"E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\v credist_x86\vcredist_x86.exe"
/q:a '
Process exited with code 0
Running checks for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)',
phase
AfterPackage
Running MsiProductCheck with ProductCode
'{A49F249F-0C91-497F-86DF-B2585E8E76B7}'
MsiQueryProductState returned '-1'
Setting value '-1 {int}' for property 'VCRedistInstalled'
The following properties have been set for package 'Visual C++ $B%i%s%?%$%`(B
$B%i%$%V%i%j(B (x86)':
Property: [VCRedistInstalled] = -1 {int}
Running checks for command 'vcredist_x86\vcredist_x86.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property
'VCRedistInstalled' and value '3': false
Result of running operator 'ValueEqualTo' on property 'AdminUser' and
value
'false': false
Skipping FailIf because Property 'Version9X' was not defined
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.00': false
Result of checks for command 'vcredist_x86\vcredist_x86.exe' is 'Install'
'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' RunCheck result: Unknown
Launching Application.
Using MsiInstallProduct with package path
'C:\censored\CensoredSetup\Release\LDAdjustmentSe tup.msi' and command
line
''
MsiInstallProduct returned '1638'
Error:
Status of package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' after install
is
'InstallUnknown'

Dec 18 '07 #5


"Norman Diamond" <nd******@community.nospamwrote in message
news:OJ**************@TK2MSFTNGP03.phx.gbl...
>I partly understand the bug, but I don't understand what to do about it.

Aaron Stebner wrote:
"This means that if you build a setup project in VS 2005 SP1 and include
the VC redist package as a prerequisite, your setup will end up
downloading and installing the VC redist package on systems that already
have the original VS 2005 version of this redist package installed.
Because of the major upgrade functionality, this will not harm users'
systems at all, but it will result in a slight time delay due to an
unnecessary download and install."

The fact is, this will not harm users' systems at all because the
installer refuses to install the third copy of the VC redist and the
installer refuses to install the application. There's wasted time, and at
the end of the wasted time there is a no-op.

Can we use Visual Studio 2005 SP1 to build an installer that will get the
application installed onto the end users' machines? If so, how?
Check out the follow up here:
<http://blogs.msdn.com/nikolad/archive/2007/04/02/workaround-for-using-vs2005-sp1-version-of-vcredist-exe-within-a-boostrapper-setup-exe.aspx>

Anthony Wieser
Wieser Software Ltd

Dec 18 '07 #6
"Anthony Wieser" <ne*****************@wieser-software.comwrote in message
news:eL**************@TK2MSFTNGP05.phx.gbl...
"Norman Diamond" <nd******@community.nospamwrote in message
news:OJ**************@TK2MSFTNGP03.phx.gbl...
>>I partly understand the bug, but I don't understand what to do about it.

The fact is, this will not harm users' systems at all because the
installer refuses to install the third copy of the VC redist and the
installer refuses to install the application. There's wasted time, and
at the end of the wasted time there is a no-op.

Can we use Visual Studio 2005 SP1 to build an installer that will get the
application installed onto the end users' machines? If so, how?

Check out the follow up here:
<http://blogs.msdn.com/nikolad/archive/2007/04/02/workaround-for-using-vs2005-sp1-version-of-vcredist-exe-within-a-boostrapper-setup-exe.aspx>
OK, Nikola Dudar wrote:
"When it is used as part of bootstrapper (setup.exe), RTM version of
VCRedist.EXE may be downloaded instead of SP1 version because of incorrect
product code specified in product.xml."

I'm still confused, for two more new reasons now.

(1) Visual Studio 2005 SP1 creates an installer that includes the SP1
version of VCRedist.EXE not the RTM version. If only a second installation
of the SP1 version occurs then it wastes time but succeeds. The problem is
that a third installation of the SP1 version fails, therefore the installer
refuses to install the application. I don't see where the RTM version
enters into this.

(2) I understand wording about some file named product.xml containing a
product code that improperly specified the RTM version. I understand that
if I can find a file named product.xml and correct its contents then maybe
both the second (succeeding) and third (failing) attempts to install the SP1
version will no longer be attempted, and the application might install
directly. However, where is this product.xml file?

Dec 18 '07 #7
The bug described by Aaron Stebner continues unchanged in Visual Studio
2008. The installer wastes time installing a second copy of VC 2008
runtime.

For the problem that I experienced, where the installer attempts to install
a third copy of VC 2005 SP1 runtime, fails, and then refuses to install the
application, I'm not sure yet if this is fixed in Visual Studio 2008. It
sure looks like a tougher problem than the one Mr. Stebner described.
"Phil Wilson" <ph*********@wonderware.something.comwrote in message
news:eg*************@TK2MSFTNGP06.phx.gbl...
There's a bug here. The issue is that the SP1 installation for the VC
runtime is (internally) a new MSI setup with a new product code, but the
package.xml that setup.exe uses is still looking for the RTM producty
code. It's mentioned here:
http://blogs.msdn.com/astebner/archi...-2005-sp1.aspx

The MsiProductCheck guid in Product.Xml for the VS 2005 SP1 VC redist is
incorrect.
--
Phil Wilson
[MVP Windows Installer]

"Norman Diamond" <nd******@community.nospamwrote in message
news:OR**************@TK2MSFTNGP04.phx.gbl...
>>A project depends on VC runtime from Visual Studio 2005 SP1, and DotNet
Framework 2. Options are set in the setup project properties, so if
these
two dependencies are not already installed then this installer will
install
them.

But what about the situation where VC runtime has already been installed?
In fact it's been installed twice. Although the project was built on a
Windows XP system with Visual Studio 2005 SP1 and the results were copied
to
a Vista system to be installed, it happens that this Vista system already
has Visual Studio 2005 SP1 plus Vista hotfix. And since a project which
requires VC runtime has already been installed on this Vista system, that
project's installer already installed a second copy of VC runtime. So
here
we are with Visual Studio 2005 SP1 building an installer which tries to
install a third copy of VC runtime, and this fails with MSI error 1638.

Due to this failure, the installer proceeds to refuse to install the
application.

For some reason the installer figures out that DotNet Framework 2 is
already
installed (one copy or two I'm not sure), so it doesn't try to install an
extra copy of that.

Since it seems that the maximum allowable number of redundant copies of
the
VC runtime from Visual Studio 2005 SP1 is two, and a third one fails, is
there some way to tell Visual Studio 2005 SP1 to build an installer which
will only try to install the VC runtime when the maximum allowable number
of
redundant copies hasn't been reached yet?

Here's the log of the installation failure.
The following properties have been set:
Property: [AdminUser] = true {boolean}
Property: [ProcessorArchitecture] = Intel {string}
Property: [VersionNT] = 6.0.0 {version}
Running checks for package '.NET Framework 2.0', phase BuildList
Running external check with command line
"E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\do tnetfx\dotnetchk.exe" -lcid:1041
Process exited with code 2
Setting value '2 {int}' for property 'DotNetInstalled'
Reading value 'Version' of registry key 'HKLM\Software\Microsoft\Internet
Explorer'
Read string value '7.0.6000.16575'
Setting value '7.0.6000.16575 {string}' for property 'IEVersion'
The following properties have been set for package '.NET Framework 2.0':
Property: [DotNetInstalled] = 2 {int}
Property: [IEVersion] = 7.0.6000.16575 {string}
Running checks for command 'dotnetfx\instmsia.exe'
Result of running operator 'ValueExists' on property 'VersionNT': true
Result of checks for command 'dotnetfx\instmsia.exe' is 'Bypass'
Running checks for command
'dotnetfx\WindowsInstaller-KB893803-v2-x86.exe'
Result of running operator 'ValueExists' on property 'Version9x': false
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.0.3': false
Result of running operator 'VersionGreaterThanOrEqualTo' on property
'VersionMsi' and value '3.0': true
Result of checks for command
'dotnetfx\WindowsInstaller-KB893803-v2-x86.exe'
is 'Bypass'
Running checks for command 'dotnetfx\dotnetfx.exe'
Result of running operator 'ValueNotEqualTo' on property
'DotNetInstalled'
and value '0': true
Result of checks for command 'dotnetfx\dotnetfx.exe' is 'Bypass'
Running checks for command 'dotnetfx\langpack.exe'
Result of running operator 'ValueEqualTo' on property 'DotNetInstalled'
and
value '2': true
Result of checks for command 'dotnetfx\langpack.exe' is 'Bypass'
'.NET Framework 2.0' RunCheck result: No Install Needed
Running checks for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)',
phase
BuildList
Running MsiProductCheck with ProductCode
'{A49F249F-0C91-497F-86DF-B2585E8E76B7}'
MsiQueryProductState returned '-1'
Setting value '-1 {int}' for property 'VCRedistInstalled'
The following properties have been set for package 'Visual C++ $B%i%s%?%$%`(B
$B%i%$%V%i%j(B (x86)':
Property: [VCRedistInstalled] = -1 {int}
Running checks for command 'vcredist_x86\vcredist_x86.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property
'VCRedistInstalled' and value '3': false
Result of running operator 'ValueEqualTo' on property 'AdminUser' and
value
'false': false
Skipping FailIf because Property 'Version9X' was not defined
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.00': false
Result of checks for command 'vcredist_x86\vcredist_x86.exe' is 'Install'
'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' RunCheck result: Install Needed
Installation of components 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' was
accepted.
Copying files to temporary directory
"E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\ "
Copying from
'C:\censored\CensoredSetup\Release\vcredist_x86\v credist_x86.exe' to
'E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\vc redist_x86\vcredist_x86.exe'
Running checks for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)',
phase
BeforePackage
Running MsiProductCheck with ProductCode
'{A49F249F-0C91-497F-86DF-B2585E8E76B7}'
MsiQueryProductState returned '-1'
Setting value '-1 {int}' for property 'VCRedistInstalled'
The following properties have been set for package 'Visual C++ $B%i%s%?%$%`(B
$B%i%$%V%i%j(B (x86)':
Property: [VCRedistInstalled] = -1 {int}
Running checks for command 'vcredist_x86\vcredist_x86.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property
'VCRedistInstalled' and value '3': false
Result of running operator 'ValueEqualTo' on property 'AdminUser' and
value
'false': false
Skipping FailIf because Property 'Version9X' was not defined
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.00': false
Result of checks for command 'vcredist_x86\vcredist_x86.exe' is 'Install'
'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' RunCheck result: Install Needed
Verifying file integrity of
E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\vcr edist_x86\vcredist_x86.exe
Verifying file hash
Installing using command line
'"E:\Users\soft1\AppData\Local\Temp\VSDBA68.tmp\v credist_x86\vcredist_x86.exe"
/q:a '
Process exited with code 0
Running checks for package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)',
phase
AfterPackage
Running MsiProductCheck with ProductCode
'{A49F249F-0C91-497F-86DF-B2585E8E76B7}'
MsiQueryProductState returned '-1'
Setting value '-1 {int}' for property 'VCRedistInstalled'
The following properties have been set for package 'Visual C++ $B%i%s%?%$%`(B
$B%i%$%V%i%j(B (x86)':
Property: [VCRedistInstalled] = -1 {int}
Running checks for command 'vcredist_x86\vcredist_x86.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property
'VCRedistInstalled' and value '3': false
Result of running operator 'ValueEqualTo' on property 'AdminUser' and
value
'false': false
Skipping FailIf because Property 'Version9X' was not defined
Result of running operator 'VersionLessThan' on property 'VersionNT' and
value '5.00': false
Result of checks for command 'vcredist_x86\vcredist_x86.exe' is 'Install'
'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' RunCheck result: Unknown
Launching Application.
Using MsiInstallProduct with package path
'C:\censored\CensoredSetup\Release\LDAdjustmentSe tup.msi' and command
line
''
MsiInstallProduct returned '1638'
Error:
Status of package 'Visual C++ $B%i%s%?%$%`(B $B%i%$%V%i%j(B (x86)' after install
is
'InstallUnknown'

Dec 20 '07 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Wayno | last post by:
My php logs are coming up empty. I have done all I can think of, and all that made sense to me. Can someone take a look at my php.ini please and tell me what you think may be the problem. I...
3
by: Dmitry | last post by:
Hi, I have defined interface for COM components which inludes an argument being filled with additional error info, if such occurs. If inside I raise COM Error, I populate that parameter. In COM...
2
by: Alphonse Giambrone | last post by:
I am currently reading 'Programming The Web with Visual Basic .NET' and have so far found it to be excellent. Downloaded all the code from Apress and working in chapter 4, I get the error shown...
5
by: Paul Furman | last post by:
What is the proper way to turn off error reporting? I'm on a shared server so... "Note: Although display_errors may be set at runtime (with ini_set ()), it won't have any affect if the script...
5
by: Jose Cintron | last post by:
I created a pretty basic program based on the "Windows Forms Application" template using C++ in VS 2005. When I run the program from my local system it runs properly (do happy dance), now when I...
3
by: alnug | last post by:
Hello, I'm trying to use the following code to read data from Excel files and put the data into an MS Access Table. Some of the Excel files have the tabs in the sequence Chart1, Sheet1, Sheet2 etc...
1
by: noneedforthis | last post by:
I'm a new user of Access/VB and ran in to this nasty wall. (Access 2003, VB6.3, Windows XP) Runtime Error 2001: You cancelled the previous operation. The highlighted line is the one where the...
12
by: aaragon | last post by:
I have this scenario: several arrays for which I have their fixed values at compilation time. Now, at runtime I need to access a specific array depending on an integer but I want to avoid if and...
11
by: LayneMitch via WebmasterKB.com | last post by:
Hello. This is a reference file from a book I read in which the core subject is the use of 'event listeners'. I'm trying to load the file in Firefox and it's giving me an error message: ...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
0
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.