The documentation for the Environment element says that it will
set/remove the value of an environment variable when the component is
installed... is it possible to set one during uninstall (w/o a custom
action?)
My reason is that I add items to the PATH & CLASSPATH when I install,
and I'd like
I did switch it so it was always 0 and that fixed the problem. I
somehow thought that wasn't the real problem, but I guess it was :)
I have bad memories of the problem being somewhere entirely different
than it appears.
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
I'm using the technique shown here
http://msdn2.microsoft.com/En-US/library/aa370134.aspx
to dynamically determine the size of the buffer required. I just
removed the rest of the code because it doesn't make it that far. I've
used this technique in the past with no problem.
_
I'm having a problem where it appears that my custom action is
terminating during a MsiGetProperty call.
Hopefully someone could provide some insight into the issue.
I've simplified reproducing the problem to this
/* Get the Installation directory from the installer
**
I was trying to rebuild the various dialogs I need... pretty much
WIXUI_INSTALLDIR but without the license agreement.
Case sensitivity was my problem, everything is compiling without issue
now :-)
Thanks
From: Bob Arnson [mailto:[EMAIL PROTECTED]
Sent:
When I try to compile some of the wix 3 ui files, I get errors like
Common.wxs(15) : error CNDL0150 : Undefined preprocessor variable
'$(var.bannerBmp)'.
Is it possible to pass values for variables on the command line?
Ex:
"C:/Program Files/Windows Installer XML v3"/bin/candle ./u
Running depends on a problem machine is just showing me issues with
MSJAVA.DLL and MPR.DLL. The depends FAQ makes me think they aren't
really issues to be concerned with.
Also, building statically, I don't know of a machine that it does work
on. I have only been testing on my development XP m
The dependency walker doesn't use any unusual Dlls. If you haven't
already tried this, get to a system where your custom action Dll fails,
just copy depends.exe and your Dll onto it and see what it says about
any missing dependencies.
The only missing dll is MSJAVA.dll, which is not an issue a
What tool version are you using to build your Dll?
Msvcrt.dll goes back to VS 6.0.
I'm building with Visual C++ 2005 Express.
And what's dutil.lib/dll?
I believe wcautil is dependent on dutil. From the
http://www.tramontana.co.hu/ tutorial:
Apart from msi.lib,
Thanks for the info Mike, I think I had the general idea about the
static version vs the import library, though I wouldn't have known what
to call them. I mentioned that when I included it, my installer kind of
worked, because I thought it might be helpful in providing some sort of
basis that the
I'd appreciate any advice that could point me in the direction of
solving this problem.
With my project settings as they are, if I build the dll and the
installer, the installer will fail with the usual premature termination
error, because my dll failed to load.
I started working from a tem
So now's the time to add logging or even a MessageBox call to verify
that the function is now being loaded and executed.
Based on everything I've learned to this point, all signs point to
something wrong in how I built the dll.
I have logging throughout the dll already, and the project sett
While its not the stupid error you pointed out, it was the result of
another stupid error... I think. I'm still not good with the VS
environment.
It turns out, for whatever reason, I had been specifying msvcrtd.lib as
an additional dependency. My interpretation is that it made the linker
dyna
Thanks for the suggestion. It didn't seem to have any effect though.
The size of the dll (and all the other files in the build directory)
stayed the same, and the msvcr80.dll dependency still exists.
From: Brian Simoneau [mailto:[EMAIL PROTECTED]
Sent:
I'm compiling my CA dll with the /MT flag.
Running dependency walker on the system where it won't install shows the
dll is dependent on msvcr80.dll.
Why would the dll continue to be dependent on msvcr80.dll even though
I've specified to link statically? A co-worker told me it's impossible
http://dependencywalker.com/ is your friend. .NET 2.0 includes the VC
2005 runtime, so it's a likely candidate. You can change the VC project
to use static runtime to avoid the DLL dependency.
Thanks for the tips. I've looked at my dll with dependency walker, but
I'm not quite sure what to loo
I'm curious about this as well. I've noticed the same behavior in my
installer, and I haven't been able to figure out a) what it is doing, or
b) how to make it go away.
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Scott
Palmer
Sent: Thursday,
One system in question had version 1 of the .NET framework, and
installing version 2 made the problem go away.
Any tips on how to find out what the dependency is, and how I can
configure my build setting to remove it?
From: Rowland, Chris
Sent: Thursday, M
I was having this issue on a Vista machine and I changed my build
settings to use the setting "No Common Language Runtime support" and the
problem went away.
Now the same type of issue (use of a CA in the DLL fails) has popped up
on a couple of XP and a 2K system, while it works fine on othe
I'm not sure, but maybe it's trying to compare the property
INSTALLUNINSTALL to the (nonexistent) property INSTALLER?
Maybe you need INSTALLUNINSTALL="INSTALLER"
-Original Message-
From: Alex Steen [mailto:[EMAIL PROTECTED]
Sent: Friday, May 04, 2007 2:26 PM
To: Rowland, Chris; [EMAIL PR
I've also discovered that you can use msizap to force remove
uninstallable applications. Msizap comes with the windows platform sdk
and is used like so...
msizap T {product code}
Is using msiexec /fv the preferred method Rob?
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL P
Did you run as an administrator?
Error 1923 looks like a permissions problem.
1923: Service '[2]' ([3]) could not be installed. Verify that you have
sufficient privileges to install system services.
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On B
I had originally copied the WixMondoUI fileset from wix 2.0 and modified
it to create my custom UI.
What effect does that have on your answer?
From: Bob Arnson [mailto:[EMAIL PROTECTED]
Sent: Wednesday, May 02, 2007 11:25 PM
To: Rowland, Chris
Cc: WiX-users@l
In WiX 2.0 you would use Text="$(loc.ButtonNext)" to reference the
string you defined in your localization file.
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
Pseudonymic Wannabe
Sent: Thursday, May 03, 2007 5:38 AM
To: wix-users@lists.sourceforge.net
Su
I've come to the conclusion that I have to convert to Wix 3.0 to use
this feature. I've got my installer converted over to comply with the
exception of a couple ICE warnings that I may or may not fix.
I'm still having issues getting the 8.3 path, though.
I have 2 CustomActions.
The fir
Due to my unfortunate need for 8.3 paths, I'm finding it necessary to
convert from 2.0 to 3.0.
One error I got in converting was:
error LGHT0010 : The WixLocalization/@Culture attribute was
not found; it is required.
I took a guess and changed
to
and that resolved the comp
Thanks, I believe I have that aspect sorted out for now via build
settings. I wasn't sure it was .NET, but installing the .NET framework
on a machine that exhibited the problem caused the problem to go away.
From: Bob Arnson [mailto:[EMAIL PROTECTED]
Sent: Mo
In Visual C++ 2005 Express, everything compiles ok until I add the line:
WcaInitialize(hInstall, "VerifyLicenseDir");
which yields the message:
LicenseFileUtils.obj : error LNK2019: unresolved external symbol
[EMAIL PROTECTED] referenced in function [EMAIL PROTECTED]
If I add
#
My installer is failing on some systems, and it appears that its
dependant on the .NET framework. My CustomActions were authored in
VC++. Is .NET always a requirement of installers that use CustomActions
or is this a result of the build settings I used to build the DLL?
-
I was able to build with a colleague's VC2005 install with no issues
(build wise) but in trying to move my project into VC++ 2005 Express on
my own system, I get linkage errors.
1>wcautil.lib(wcalog.obj) : error LNK2019: unresolved external symbol
[EMAIL PROTECTED] referenced in function "int
I have used a condition like this
(&Complete = 3) AND NOT (!Complete = 3)
Where "Complete" was the id of my main feature.
Check out http://www.tramontana.co.hu/wix/lesson5.php
It seems to work for me. Maybe someone with more experience has a
better suggestion though.
-Original Message--
As in /MD instead of /MT?
From: Bob Arnson [mailto:[EMAIL PROTECTED]
Sent: Friday, April 27, 2007 12:08 PM
To: Rowland, Chris
Cc: [EMAIL PROTECTED]; WiX-users@lists.sourceforge.net
Subject: Re: [WiX-users] Logging in a custom action
[EMAIL PROTECTED] wrote
I found a co-worker lucky enough to have 05 installed and built my dll
there (easy as pie) but the CA still bails, apparently before it has a
chance to log anything.
Is there any way to determine from the log why a CA is failing to
execute, if it appears that its never even getting into the CA
I noticed the following that probably relates to this. A warning I had
been ignoring.
Are you dynamically linking against MSVCRT?
I'm not sure... how might I find out?
msvcrt.lib(crtdll.obj) : warning LNK4229: invalid directive
'/manifestdependency:type='win32' name='Microsoft.VC80.CRT'
ver
No, I haven't tried that. The WiX chm explicitly says you need VS 2005
to build.
I guess I could try it with 03 anyways.
From: Bob Arnson [mailto:[EMAIL PROTECTED]
Sent: Friday, April 27, 2007 2:18 AM
To: Rowland, Chris
Cc: [EMAIL PROTECTED]; WiX-users@list
I'll try to answer your questions, but this is my first experience doing
any sort of work in Visual Studio, so I'm largely unfamiliar. I'm also
using 2003, which seems that is partially contributing to my problems.
Basically the installer seemed to be working, except on one particular
vista 64
Yeah, the error was in the custom action. (It returned the value 3)
I had tried to attach to msiexec.exe before to debug, but didn't make
any progress with that.
Can you show me how you fired off the MessageBox from within your CA?
This is a lot of debugging just so I can debug :-)
After an obscene amount of headbanging, I finally managed to get it to
build (with warnings) with the almighty T() call.
Unfortunately that resulted in a CA that caused the installer to quit
due to an error. If only I could log what was going on ><
Assuming the lack of wrapping my strings
It's an immediate CA. I tried wrapping my strings with _T() but _T is
not defined. Another VS05 difference?
Could my definitions be causing a problem? I more or less copied them
from a forum post I saw regarding a similar problem.
#define __out /* ? */
#define __in /* ? */
#define __ino
Thanks for the continuing advice. I'm still not seeing any log out put
though. I've commented out the guts of my CA, so now I have just:
extern "C" UINT __stdcall VerifyLicenseDir(MSIHANDLE hInstall)
{
WcaInitialize(hInstall, "VerifyLicenseDir");
WcaLog(LOGMSG_STANDARD, "Enter
I was able to resolve my build errors by "defining" everything missing
myself (to /**/ ).
I read that they might be defined by default in VS05, but not in VS03
(what I'm using.)
However, I rebuilt my installer with the new DLL and ran it with *cv
logging, and I still don't see anything.
The C
Thanks, that looks like what I wanted.
I'm having trouble linking everything correctly though, and I get a ton
of errors in wcautil.h, like
"E:\Program Files\WiX\sdk\inc\wcautil.h(48): error C2065: '__in' :
undeclared identifier"
And
"E:\Program Files\WiX\sdk\inc\wcautil.h(48): error C2182:
Is there any way to write a message to the install log from a custom
action?
Chris Rowland* Software Engineer * SunGard * Data Management Solutions *
1194 Oak Valley Drive, Suite 100 * Ann Arbor, MI 48108 * Tel
734.332.4423 * Fax 734.332.4440 *
http://www.sungard.com/datamanagementsolutions
>So try this: An immediate CA after CostFinalize uses [!fileId] to get
>the short path, chops off the filename, and sets another property to
>just the directory, which you then use in an Environment element. Worth
>a shot.
I think I've found an acceptable solution by creating the INSTALL dir
fol
Will doing a deferred execution of my CA work in my situation? My
understanding is that I can't set a property in a deferred custom
action, all I can do is read the property "CustomActionData"
If this is the case, my only hope seems to be to set the environment
variable in the custom action, whic
I'm back on task trying to resolve this 8.3 INSTALLDIR path issue, and I
can get the path in question using the method Phil suggested, but I'm
not certain how to use that to set the environment variable.
As far as I understand, I cannot install a component after
InstallFinalize, and I had to run m
I'm trying to set an environment variable to be the value of INSTALLDIR,
but I need it to be the 8.3 style path.
I saw an old mailing list thread about this topic that Rob responded to
with:
>You could always just use "[!FileId]" to get the short name of
a file.
This thread was in
>RemoveFolder maps to the RemoveFile table, which only removes empty
>folders. So you need both RemoveFile and RemoveFolder.
That sounds pretty inconvenient if you want to recursively remove every
file in every directory, which I would have guessed was a fairly common
thing to want to do. Is the
>There's your problem: Without a guid, the component is unmanaged and
>never removed. Take a look at a verbose log around the InstallValidate
>action to see which components and features are scheduled for
>installation/removal.
I gotcha, I figured I didn't need a guid because the intent was to
I tried to set up the property like you said, but it's still not
working. Can you see where I've gone wrong?
My checkbox control:
NOT(WixUI_InstallMode =
"Remove")
My property definition:
Feature:
Component:
REMOVEALLFILES AND (&Complete = 2)
I
I'm trying to do the same thing, but when check the checkbox to remove
the Installation directory, it's not deleting the directory, or the 2
files that are left behind.
I cant imagine you have to explicitly remove files before removing the
directory, do you?
I have a hidden feature to enable my
I'm trying to create a folder that's either writable by the installing
user, or by all users, depending on ALLUSERS.
What would I need to do to set permissions specific to the installing
user? I attempted to use the USERSID property, and got no error, but
the resulting older had an odd BUILTIN\BU
Is it possible to determine the product code (if any) for an arbitrary
file that resides on the system?
The idea would be to offer to uninstall the application that lives in a
given directory using msiexec /x{product-code}
I'm trying to show one of 2 mutually exclusive features in the customize
dialog based on the value of ALLUSERS.
For some reason, one is always shown, and the other is always hidden, no
matter what I think the value of ALLUSERS is.
Additionally, other aspects of the installation that are dependant
Does WI support any sort of automated backup of files that have changed
since installation when performing the un-installation?
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Chris
Bardon
Sent: Wednesday, March 28, 2007 8:47 AM
To: Bob Arnson
Cc: Wilson,
I'm trying to come to grips with how upgrades are handled, and I was
wondering if someone could shed some light on the subject for me.
In an attempt to understand better, I've been trying to install a pseudo
"minor upgrade".
I installed the base version, then I tried to install the slightly
mo
I've managed to install my package in such a way that I cannot uninstall
it.
I was experimenting with utilizing properties on the command line, and
did a successful quiet install using a particular property.
I then noticed that the UI based uninstall would fail because it was
dependant on said
I don't know if the functionality you're thinking of exists, but
alternatively you could set the property based on a registry entry you
set during installation.
Chris
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Lindsay
Harris
Sent: Thursd
I'm testing a scenario where our software has been installed with the
old installer, and I install a newer version of the software over top of
it using the wix 2.0 based installer.
I wanted to test that if a file could not be written it would cause an
error of some sort. Every file in my inst
Ah, yes I see now (I assume that's what you're referring to.)
I think that should work, I'll give it a shot.
Thanks again.
From: Levi Wilson [mailto:[EMAIL PROTECTED]
Sent: Wednesday, March 21, 2007 10:59 AM
To: Rowland, Chris
Cc: wix-users@lists.sourc
I don't want to set my directory to the current location of the files on
their machine, rather I want to copy those files to the location they
choose to install the software.
So say the required files were in c:\myfiles\ and they chose to install
to c:\program files\installdir\ then I want to
For a particular installation, the user has some of the files required
for installation already on their system prior to running the installer.
I want to copy these files into the installation directory.
Is there a preferred method for doing this?
Would I need a Custom Action, can I manu
Ok, I finally have access to the machine I need and I'm trying this out.
I tried to build in Visual Studio 03 as a C++ project, and right off the
bat I got some build errors that I don't understand. I'm sure they're
pretty typical, I'm just unfamiliar with VC++.
error LNK2001: unresolved exter
Thanks Levi, I'll give that a shot as soon as I get access to my
development box back.
From: Levi Wilson [mailto:[EMAIL PROTECTED]
Sent: Friday, March 16, 2007 8:56 AM
To: Rowland, Chris
Cc: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] verify file
If I look at the log after a completed installation, I can see the
following property values.
Property(S): MYFOLDER = C:\FTP\#This is the folder I
selected in the dialog
...
Property(S): MYFILEEXISTS = C:\requiredfile.txt #this is
where the file was found (MYFOLDER wa
That actually looks like exactly what I want... much cleaner than my C++
hackjob.
That gives me a followup question, however. I plugged your suggestion
(with Depth="0") into my dialog I use to browse to the directory that
contains the file.
It appears that the property I'm trying to set to
I read that "managed code" in a custom action is a no-no (please forgive
me if I use the wrong terminology) so I am attempting to write my custom
action without using managed code. Most examples I find seem to use it,
however, so I'm doing the best I can.
I wrote a simple VC++ app (.exe) that
Ah, thanks! That did the trick.
It makes a lot more sense when you start to realize what things are
being used to reference.
Thank you both for your help.
From: Levi Wilson [mailto:[EMAIL PROTECTED]
Sent: Thursday, March 15, 2007 10:25 AM
To: Rowland,
I honestly don't know :-) I'm totally inexperienced in this area.
I tried to mimic a working example I had, and both the wix elements and
the c++ source look equivalent (to me)
Is there some documentation that describes what you're talking about?
From
I have the following elements defined. Do they look right?
And
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Rob
Hamflett
Sent: Thursday, March 15, 2007 10:02 AM
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Locate a required file duri
Thanks for the advice Rob. I've got the directory browsing dialog in
place, but I'm having issues getting my dll to work.
When I hit the Next button in my dialog, I get an 'installer
information' message window that says "There is a problem with this
Windows Installer package. A DLL required for
I'm working on an installer that depends upon files that the user has
received prior to performing the installation.
Our current installer (not windows installer based) prompts the user to
browse for the location of the files... I'm trying to replicate this,
but I'm not exactly sure how to go abou
72 matches
Mail list logo