Here's a snippet of what you want to do:
<!-- Embed Version target into the build process -->
<PropertyGroup>
Version;
$(CoreBuildDependsOn)
</PropertyGroup>
<!--Get Subversion Revision here-you must use MSBUILDCommunityTasks:-->
<Target Name="Version" >
<SvnVersion ToolPath="$(Subversion)" LocalPath="..\">
<Output TaskParameter="Revision" PropertyName="Revision"/>
</SvnVersion>
<Message Text="Version: $(Revision)" Importance="high"/>
<!-- MSBuild 3.5 Syntax -->
<PropertyGroup>
<!-- If DefineConstants is not defined -->
<DefineConstants Condition="'$(DefineConstants)' ==
''">SubversionRevision=$(Revision)</DefineConstants>
<!-- If DefineConstants is defined -->
<DefineConstants Condition="'$(DefineConstants)' !=
''">$(DefineConstants);SubversionRevision=$(Revision)</DefineConstants>
</PropertyGroup>
<!-- MSBuild 2.0 Syntax -->
<!-- If DefineConstants is not defined -->
<CreateProperty Condition="'$(DefineConstants)' == ''"
Value="SubversionRevision=$(Revision)">
<Output TaskParameter="Value" PropertyName="DefineConstants"/>
</CreateProperty>
<!-- If DefineConstants is defined -->
<CreateProperty Condition="'$(DefineConstants)' != ''"
Value="$(DefineConstants);SubversionRevision=$(Revision)">
<Output TaskParameter="Value" PropertyName="DefineConstants"/>
</CreateProperty>
</Target>
You don't need both the MSBuild 2.0 and 3.5 syntaxes. I use Visual Studio 2008
so I use MSBuild 3.5 syntax. Technically, the <!-- If DefineConstants is not
defined --> portions are not necessary because you always define
DefineConstants at the project scope. Here's how I would rewrite your entire
project:
<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--Main Property group-->
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == ''">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>1.0</ProductVersion>
<ProjectGuid>{1bc4cf27-badd-47e0-87a7-9e3ed0c8c50b}</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>Wix_TagImport</OutputName>
<OutputType>Package</OutputType>
<WixToolPath>..\..\DLL\Wix\</WixToolPath>
<Subversion>..\..\DLL\CollabNet Subversion Client</Subversion>
<MSBUILDCommunityTasks>..\..\DLL\MSBuildCommunityTasks\</MSBUILDCommunityTasks>
<WixTasksPath>$(WixToolPath)\wixtasks.dll</WixTasksPath>
<WixTargetsPath>$(WixToolPath)\Wix.targets</WixTargetsPath>
<Cultures>en-us</Cultures>
<LinkerBaseInputPaths>..\MYAPP\bin\Release</LinkerBaseInputPaths>
</PropertyGroup>
<Import Project="$(WixToolPath)\Wix.targets" />
<Import Project="$(MSBUILDCommunityTasks)\MSBuild.Community.Tasks.Targets"/>
<!--Include wix files here:-->
<ItemGroup>
<WixExtension Include="WixUtilExtension">
<HintPath>$(WixToolPath)\WixUtilExtension.dll</HintPath>
</WixExtension>
<WixExtension Include="WixUIExtension">
<HintPath>$(WixToolPath)\WixUIExtension.dll</HintPath>
</WixExtension>
</ItemGroup>
<ItemGroup>
<Content Include="Config.wxi" />
<Compile Include="Product.wxs" />
<Compile Include="WixUI_Minimal_NoLicense.wxs" />
<Compile Include="Components.wxs" />
</ItemGroup>
<PropertyGroup>
Version;
$(CoreBuildDependsOn)
</PropertyGroup>
<!--Get Subversion Revision here-you must use MSBUILDCommunityTasks:-->
<Target Name="Version" >
<SvnVersion ToolPath="$(Subversion)" LocalPath="..\">
<Output TaskParameter="Revision" PropertyName="Revision"/>
</SvnVersion>
<Message Text="Version: $(Revision)" Importance="high"/>
<PropertyGroup>
<DefineConstants>$(DefineConstants);SubversionRevision=$(Revision)</DefineConstants>
</PropertyGroup>
</Target>
<!--Output based on Release or Debug-->
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86'">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug;ReleaseDir=..\MYAPP\bin\Release\</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug;ReleaseDir=..\MYAPP\bin\Release\</DefineConstants>
</PropertyGroup>
</Project>
Edwin G. Castro
Software Developer - Staff
Electronic Banking Services
Fiserv
Office: 503-746-0643
Fax: 503-617-0291
www.fiserv.com
Please consider the environment before printing this e-mail
> -----Original Message-----
> From: Brian Bakkebo [mailto:[email protected]]
> Sent: Wednesday, April 22, 2009 4:27 PM
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] Subversion revision number through a
> wixproject file using msbuild community tasks
>
> Thanks again for your response EdwinYep, I use the same CollabNet
> release for testing. Yep, I expected that also, but I dont see it,
> which leads me to believe that there is some kind of pathing/mapping
> problem. Also, I am not quite sure on the syntax for DefineConstants
> inside the version target.
> Here is my project file. Hope you can see what the problem is..Thanks
> for your help.
>
> <Project DefaultTargets="Build" xmlns="
> http://schemas.microsoft.com/developer/msbuild/2003">
> <!--Main Property group-->
> <PropertyGroup>
> <Configuration Condition=" '$(Configuration)' == ''
> ">Debug</Configuration>
> <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
> <ProductVersion>1.0</ProductVersion>
> <ProjectGuid>{1bc4cf27-badd-47e0-87a7-9e3ed0c8c50b}</ProjectGuid>
> <SchemaVersion>2.0</SchemaVersion>
> <OutputName>Wix_TagImport</OutputName>
> <OutputType>Package</OutputType>
> <WixToolPath>..\..\DLL\Wix\</WixToolPath>
> <Subversion>..\..\DLL\CollabNet Subversion Client</Subversion>
> <MSBUILDCommunityTasks>..\..\DLL\MSBuildCommunityTasks\</MSBUILDCommuni
> tyTasks>
> <WixTasksPath>$(WixToolPath)\wixtasks.dll</WixTasksPath>
> <WixTargetsPath>$(WixToolPath)\Wix.targets</WixTargetsPath>
> <Cultures>en-us</Cultures>
> <LinkerBaseInputPaths>..\MYAPP\bin\Release</LinkerBaseInputPaths>
> </PropertyGroup>
> <Import Project="$(WixToolPath)\Wix.targets" />
> <Import
> Project="$(MSBUILDCommunityTasks)\MSBuild.Community.Tasks.Targets"
> />
> <!--Include wix files here:-->
> <ItemGroup>
> <WixExtension Include="WixUtilExtension">
> <HintPath>$(WixToolPath)\WixUtilExtension.dll</HintPath>
> </WixExtension>
> <WixExtension Include="WixUIExtension">
> <HintPath>$(WixToolPath)\WixUIExtension.dll</HintPath>
> </WixExtension>
> </ItemGroup>
> <ItemGroup>
> <Content Include="Config.wxi" />
> <Compile Include="Product.wxs" />
> <Compile Include="WixUI_Minimal_NoLicense.wxs" />
> <Compile Include="Components.wxs" />
> </ItemGroup>
> <!--Get Subversion Revision here-you must use MSBUILDCommunityTasks:-
> ->
> <Target Name="Version" >
> <SvnVersion ToolPath="$(Subversion)" LocalPath="..\">
> <Output TaskParameter="Revision" PropertyName="Revision"/>
> <DefineConstants>SubversionRevision=$(Revision)</DefineConstants>
> </SvnVersion>
> <Message Text="Version: $(Revision)" Importance="high"/>
> </Target>
> <!--Output based on Release or Debug-->
> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' ==
> 'Debug|x86'
> ">
> <OutputPath>bin\$(Configuration)\</OutputPath>
>
> <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
> <DefineConstants>Debug;ReleaseDir=..\MYAPP\bin\Release\</DefineConstant
> s>
> </PropertyGroup>
> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' ==
> 'Release|x86'
> ">
> <OutputPath>bin\$(Configuration)\</OutputPath>
>
> <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
> <DefineConstants>Debug;ReleaseDir=..\MYAPP\bin\Release\</DefineConstant
> s>
> </PropertyGroup>
>
> </Project>
>
>
>
>
>
> 2009/4/23 Castro, Edwin (Hillsboro) <[email protected]>
>
> > My example depended on having the CollabNet distribution of
> subversion.
> > Find out where svnversion.exe lives on your system.
> >
> > I expect <Message Text="Version: $(Revision)"/> to print something
> > like the
> > following:
> >
> > Version: 5425
> >
> > Are you declaring DefineConstants in the same target where
> > <SvnVersion/> runs? If not, then $(Version) will contain the default
> > value (empty string) and cause problems. Perhaps I can be of more
> help
> > if you show me your *.wixproj file.
> >
> > Edwin G. Castro
> > Software Developer - Staff
> > Electronic Banking Services
> > Fiserv
> > Office: 503-746-0643
> > Fax: 503-617-0291
> > www.fiserv.com
> > P Please consider the environment before printing this e-mail
> >
> >
> > > -----Original Message-----
> > > From: Brian Bakkebo [mailto:[email protected]]
> > > Sent: Wednesday, April 22, 2009 3:03 PM
> > > To: General discussion for Windows Installer XML toolset.
> > > Subject: Re: [WiX-users] Subversion revision number through a
> > > wixproject file using msbuild community tasks
> > >
> > > Hello Edwin thanks for your response.I had the toolpath there
> before
> > > and it didnt seem to make any difference, but I added it back
> again.
> > > Actually, I cut and pasted what you had exactly and it still seems
> > > like nothing is happening??
> > >
> > > Couple of questions:
> > > 1. Should I see this(Version: =MyRevisionValue) in the output
> > > window of visual studio when I build the wixproj? I have also
> tried
> > > to run it from msbuild and I dont see anything.
> > > 2. Could it be the way I am passing the variables from the wixproj
> > > to my product.wxs file?
> > > This is how I am doing it.
> > >
> <DefineConstants>Debug;ReleaseDir=..\ProgramName\bin\Release\;Subver
> > > sio nRevision=$(Revision)</DefineConstants>
> > >
> > > Any help is greatly appreciated.
> > >
> > > Brian
> > >
> > > 2009/4/22 Castro, Edwin (Hillsboro) <[email protected]>
> > >
> > > > First check that LocalPath is pointing to the correct location.
> > > > Sometimes the bug is sooo trivial we don't notice it. ;-)
> > > >
> > > > <SvnVersion/> expects svnversion.exe to live at
> > > > $(ProgramFiles)\Subversion\bin. If it doesn't live there, then
> > > specify
> > > > ToolPath to the directory where it does live. Example:
> > > >
> > > > <SvnVersion ToolPath="$(ProgramFiles)\CollabNet Subversion
> Client"
> > > > LocalPath="..\">
> > > > <Output TaskParameter="Revision" PropertyName="Revision"/>
> > > > </SvnVersion>
> > > >
> > > > Use <Message Text="Version: $(Revision)" Importance="high"/>
> while
> > > > testing to make it easier for the revision to be printed. The
> > > > verbosity level of msbuild can affect whether these messages are
> > > printed or not.
> > > >
> > > > Edwin G. Castro
> > > > Software Developer - Staff
> > > > Electronic Banking Services
> > > > Fiserv
> > > > Office: 503-746-0643
> > > > Fax: 503-617-0291
> > > > www.fiserv.com
> > > > P Please consider the environment before printing this e-mail
> > > >
> > > > > -----Original Message-----
> > > > > From: Brian Bakkebo [mailto:[email protected]]
> > > > > Sent: Wednesday, April 22, 2009 11:16 AM
> > > > > To: General discussion for Windows Installer XML toolset.
> > > > > Subject: [WiX-users] Subversion revision number through a
> > > wixproject
> > > > > file using msbuild community tasks
> > > > >
> > > > > I realize this probably isnt the right place for this, but I am
> > > > > hoping someone else has got this working and could just give me
> > > > > a hand or better the code...
> > > > >
> > > > > I am trying get subversion revision number through a wixproj
> > > > > file using msbuild community tasks and it is not working!
> > > > > Here is the script I am using. I am not seeing any output in
> the
> > > > > revision.
> > > > > <Import
> > > > >
> Project="$(MSBUILDCommunityTasks)\MSBuild.Community.Tasks.Targets"
> > > > > /> <!--Get Subversion Revision here-you must use
> > > > > MSBUILDCommunityTasks:--> <Target Name="Version" > <SvnVersion
> > > > > LocalPath="..\" > <Output TaskParameter="Revision"
> > > > > PropertyName="Revision" /> </SvnVersion> <Message
> > > > > Text="Version: $(Revision)"/> </Target>
> > > > >
> > > > > Thanks in advance.
> > > > > Brian
> > > > > ---------------------------------------------------------------
> -
> > > > > ---
> > > -
> > > > > ---
> > > > > -------
> > > > > Stay on top of everything new and different, both inside and
> > > > > around Java (TM) technology - register by April 22, and save
> > > > > $200 on the JavaOne (SM) conference, June 2-5, 2009, San
> Francisco.
> > > > > 300 plus technical and hands-on sessions. Register today.
> > > > > Use priority code J9JMT32. http://p.sf.net/sfu/p
> > > > > _______________________________________________
> > > > > WiX-users mailing list
> > > > > [email protected]
> > > > > https://lists.sourceforge.net/lists/listinfo/wix-users
> > > >
> > > > -----------------------------------------------------------------
> -
> > > > ---
> > > -
> > > > -------- Stay on top of everything new and different, both inside
> > > > and around Java (TM) technology - register by April 22, and save
> > > > $200 on the JavaOne (SM) conference, June 2-5, 2009, San
> Francisco.
> > > > 300 plus technical and hands-on sessions. Register today.
> > > > Use priority code J9JMT32. http://p.sf.net/sfu/p
> > > > _______________________________________________
> > > > WiX-users mailing list
> > > > [email protected]
> > > > https://lists.sourceforge.net/lists/listinfo/wix-users
> > > >
> >
> > ---------------------------------------------------------------------
> -
> > -------- Stay on top of everything new and different, both inside and
> > around Java (TM) technology - register by April 22, and save $200 on
> > the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
> > 300 plus technical and hands-on sessions. Register today.
> > Use priority code J9JMT32. http://p.sf.net/sfu/p
> > _______________________________________________
> > WiX-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >
------------------------------------------------------------------------------
Stay on top of everything new and different, both inside and
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today.
Use priority code J9JMT32. http://p.sf.net/sfu/p
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users