Yep, Oliver summed it up pretty well. As far as Votive is concerned, you can
define the preprocessor variable by entering
"Configuration=$(Configuration)" on the compiler property page (not linker
property page). Also, make sure to put the parenthesis (which you missed in
your example below). I think this is just a case of incorrect syntax for
you.
Justin
From: wix-users-***@lists.sourceforge.net
[mailto:wix-users-***@lists.sourceforge.net] On Behalf Of Foster,
Richard - PAL
Sent: Tuesday, November 07, 2006 7:34 AM
To: Friedrich, Oliver; wix-***@lists.sourceforge.net
Subject: Re: [WiX-users] preprocessor variable $(var.Build)
Oliver,
I'm still a bit unsure about where you are getting the error (I.e. are you
building the installation from the command line? Within Visual Studio 2005?
Somewhere else?). Unfortunately, I also don't use Votive so the vast
majority of this reply is guesswork!
I suspect that the MSBuild variable "Configuration" is being set, but that
when you are seeing the error it is because this variable is never being
passed to WiX.
Depending on your build process, to get the information to WiX you may need
to pass it via the command line (e.g.
-dWixVariableName=$(MSBuildVariableName) ), in which case you would access
it using $(var.WixVariableName), or set an environment variable (e.g. set
SomeEnvironmentVariable=$(MSBuildVariableName) ) and access it in WiX using
$(env.SomeEnvironmentVariable).
It is likely that Votive is intended to do this for you (like I said, I
don't use Votive, so I don't know for certain), in which case you may have
uncovered a bug.
I also notice that you mention that you found a batch file setting
"var.Build" to "$(ConfigurationName)". If true, this may not be desirable,
since within WiX you may then need to reference that variable as
$(var.var.Build). Within it's scripts, WiX requires the addition of the var
prefix to indicate that you want to use a WiX variable (not an environment
variable or system setting), but you do not specify that prefix when
defining the variable.
Hopefully this offers at least some additional information which may help
you determine where you need to look.
Regards,
Richard
_____
From: wix-users-***@lists.sourceforge.net
[mailto:wix-users-***@lists.sourceforge.net] On Behalf Of Friedrich,
Oliver
Sent: Tuesday, November 07, 2006 03:37
To: wix-***@lists.sourceforge.net
Subject: Re: [WiX-users] preprocessor variable $(var.Build)
Well, seems like $(Configuration) is set by Votive, but inside the WiX-code
I can not access it?
With : <Property Id='MyProp' Value=$(Configuration)/>
I get the Errormessage:
Error 1 Ill-formed preprocessor variable 'Configuration'. Variables must
have a prefix (like 'var.', 'env.', or 'sys.') and a name at least 1
character long. Z:\Projects\Aldi - Intranet\EwsSetup\Features\Ews_Mmc.wxs 5
1 EwsSetup
Those three throw "Undefined preprocessor variable":
<Property Id='MyProp' Value=$(var.Configuration)/>
<Property Id='MyProp' Value=$(sys.Configuration)/>
<Property Id='MyProp' Value=$(env.Configuration)/>
On the properties of the .wixproj in the linker tab, there I can set
userdefined variables, there I added "Configuration=$Configuration" but even
then, I can not access this variable like above inside my WiX-code.
Oliver
_____
From: Justin Rockwood [mailto:***@cs.stanford.edu]
Sent: Tuesday, November 07, 2006 6:58 AM
To: 'Bob Arnson'; Friedrich, Oliver
Cc: wix-***@lists.sourceforge.net; ***@cs.stanford.edu
Subject: RE: [WiX-users] preprocessor variable $(var.Build)
The variable $(Configuration) is set by most MSBuild scripts automatically
(C#, VB, VJ#, WiX, etc.). Also, $(ConfigurationName) is usually set as well,
but I'd probably go with $(Configuration). You won't be able to know what
the configuration is outside of MSBuild, but assuming that you're using C#
or VB.NET, then you should already have this defined for you by the time you
call your Pre-build event.
If you're using Votive (and therefore wix.targets), then you also get
$(Configuration) defined for you. I'm not sure if $(ConfigurationName) is
defined. If not, it's a bug.
Justin
From: Bob Arnson [mailto:***@bobs.org]
Sent: Monday, November 06, 2006 7:28 PM
To: Friedrich, Oliver
Cc: wix-***@lists.sourceforge.net; ***@cs.stanford.edu
Subject: Re: [WiX-users] preprocessor variable $(var.Build)
Friedrich, Oliver wrote:
Alright, just found out, where this variable was set. It is set on the
commandline while calling the batch-file to start the compilation of the
setup.
The batch-file is called as "Pre-build event command line" in VS2005. The
variable "var.Build" is set to the value of "$(ConfigurationName)". The last
is homemade of VisualStudio. How can I access this "ConfigurationName" under
WiX-V3?
WiX doesn't support that as it's a Visual Studio-specific concept. Votive
might, though. JRock?
--
sig://boB
http://bobs.org
_____
* C O N F I D E N T I A L I T Y N O T I C E *
-----------------------------------------------------------
The content of this e-mail is intended solely for the use of the individual
or entity to whom it is addressed. If you have received this communication
in error, be aware that forwarding it, copying it, or in any way disclosing
its content to any other person, is strictly prohibited. Peek Traffic
Corporation is neither liable for the contents, nor for the proper, complete
and timely transmission of (the information contained in) this
communication. If you have received this communication in error, please
notify the author by replying to this e-mail immediately and delete the
material from any computer.