Project templates are in build 3.0.4123:
http://blogs.msdn.com/jasongin/archive/2008/05/23/custom-action-project-templates.aspx

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Christopher 
Painter
Sent: Tuesday, May 20, 2008 6:14 PM
To: Christopher Karper; [EMAIL PROTECTED]
Cc: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] DTF in MSBuild

I wanted to keep this abstracted and loosely coupled.  It's all prototype/play 
work right now and I don't want to add dependencies to the build box that I 
can't resolve by just pulling some third party components out of source.

I'm sure when the day comes that wix3.msi has all the right bits deployed to 
the right locations with official project templates with proper msbuild support 
then I'll change my implementation and incorporate that pattern instead.   It's 
just simple and expediant for now.

Christopher Karper <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:
It looks like you're copying in all the DTF support files into a subdir as 
well.  I was trying to just use the preinstalled locs.

To each their own.   It'd be pretty easy to make an msbuild action out of 
MakeSfxCA since it's all managed code anyway.  I'm sure it'll come along soon 
enough.

Chris
On Tue, May 20, 2008 at 5:58 PM, Christopher Painter <[EMAIL 
PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:
I took the lazy way out for now with a postbuild event since Jason has said 
proper templates will be coming. I decided to add DTF to the filename for 
uniqueness.   My goal was to isolate the dependencies and wire it up as a 
standard C# class project without any particularly special plumbing.

$(ProjectDir)SDK\MakeSfxCA.exe $(TargetDir)$(TargetName).DTF.dll 
$(ProjectDir)SDK\sfxca.dll $(TargetPath) 
$(ProjectDir)SDK\Microsoft.Deployment.WindowsInstaller.dll  
$(ProjectDir)ExternalAssemblies\AxLibrary.dll

I also wrote a few blogs on the topic if you are interested. ( Can you tell, I 
REALLY like DTF )

http://blog.deploymentengineering.com/2008/05/price-of-ideology-and-great-new-hope.html

http://blog.deploymentengineering.com/2008/05/deployment-tools-foundation-dtf-custom.html

http://blog.deploymentengineering.com/2008/05/data-driven-cas-made-easy-with-dtf.html


Christopher Karper <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:
Oh yeah, also note, this depends on you having a file named CustomAction.config 
in your project.   I great improvement would be to have it check for the file's 
existence before including it.  :-)

YMMV.

Chris
On Tue, May 20, 2008 at 5:49 PM, Christopher Karper <[EMAIL 
PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:
I've got the DTF wrapper bit running as a simple exec task by adding the 
following to the end of my project file for the CA dll.

It uses the project output and appends an _Sfx to it to mark it as the wrapped 
version.   It's brute force, and it steals from the wix.targets file....
Pay special attention to the DTFBin Property.  you can find a better way to 
populate it, or just change it to point to your installation.   I had to build 
the DTF myself and disable a bunch of the signing to get this to work, since 
MakeSfxCA.exe wasn't included in the binary distro for this release.

It's uglybut hey, if someone wants to use it/improve it, be my guest.

Chris

--------

   <Target Name="AfterBuild">
        <CallTarget Targets="MakeSfxCA" />
    </Target>

    <!--
    From the Wix.targets file - CMK

  Several properties must be set in the main project file, before using this 
.targets file.
  However, if the properties are not set, we pick some defaults.
  -->
    <PropertyGroup>

        <!-- Not a good way, but it works for me.   This should use registry 
search, the same way the wix.targets does -->
        <DTFBin>c:\Program Files (x86)\Windows Installer XML v3\sdk\</DTFBin>

        <Configuration Condition=" '$(Configuration)' == '' 
">Debug</Configuration>
        <Platform Condition=" '$(Platform)'=='' ">AnyCPU</Platform>
        <OutputPath Condition=" '$(OutputPath)' == '' 
">bin\$(Configuration)\</OutputPath>
        <!-- Ensure any OutputPath has a trailing slash, so it can be 
concatenated -->
        <OutputPath Condition=" '$(OutputPath)' != '' and 
!HasTrailingSlash('$(OutputPath)') ">$(OutputPath)\</OutputPath>
        <_OriginalOutputType>$(OutputType)</_OriginalOutputType>
        <OutputType Condition=" '$(OutputType)' == '' ">Library</OutputType>
    </PropertyGroup>
    <PropertyGroup>
        <!-- Example, bin\Debug\ -->
        <OutDir Condition=" '$(OutDir)' == '' ">$(OutputPath)</OutDir>
        <!-- Ensure OutDir has a trailing slash, so it can be concatenated -->
        <OutDir Condition=" '$(OutDir)' != '' and 
!HasTrailingSlash('$(OutDir)') ">$(OutDir)\</OutDir>

        <!-- Example, MyCA -->
        <ProjectName Condition=" '$(ProjectName)' == '' 
">$(MSBuildProjectName)</ProjectName>

        <!-- Example, MyCA.csproj -->
        <ProjectFileName Condition=" '$(ProjectFileName)' == '' 
">$(MSBuildProjectFile)</ProjectFileName>

        <!-- Example, .csproj -->
        <ProjectExt Condition=" '$(ProjectExt)' == '' 
">$(MSBuildProjectExtension)</ProjectExt>

        <!-- Example, c:\MyProjects\MyCA\ -->
        <ProjectDir Condition=" '$(ProjectDir)' == '' 
">$(MSBuildProjectDirectory)\</ProjectDir>

        <!-- Example, c:\MyProjects\MyCA\MyCA.csproj -->
        <ProjectPath Condition=" '$(ProjectPath)' == '' 
">$(ProjectDir)$(ProjectFileName)</ProjectPath>

        <!-- Example, MyCA -->
        <TargetName Condition=" '$(TargetName)' == '' 
">$(OutputName)</TargetName>

        <!-- Example, MyCA.dll -->
        <TargetFileName Condition=" '$(TargetFileName)' == '' 
">$(TargetName)$(TargetExt)</TargetFileName>

        <!-- Example, MyCA_Sfx.dll -->
        <TargetSfxName Condition=" '$(TargetSfxName)' == '' 
">$(TargetName)_Sfx$(TargetExt)</TargetSfxName>

        <!-- Example, x86, x64 -->
        <TargetArchitecture Condition=" '$(TargetArchitecture)' == '' 
">x86</TargetArchitecture>

        <!-- Example, c:\MyProjects\MyCA\bin\Debug\ -->
        <FullOutDir Condition=" '$(FullOutDir)' == '' 
">$(ProjectDir)$(OutDir)</FullOutDir>
    </PropertyGroup>

    <Target Name="MakeSfxCA">
        <Exec Command="&quot;$(DTFbin)MakeSfxCA.exe&quot; 
&quot;$(FullOutDir)$(TargetSfxName)&quot; 
&quot;$(DTFbin)$(TargetArchitecture)\SfxCA.dll&quot; 
&quot;$(FullOutDir)$(TargetFileName)&quot; 
&quot;$(ProjectDir)CustomAction.config&quot; 
&quot;$(DTFbin)Microsoft.Deployment.WindowsInstaller.dll&quot; 
&quot;$(DTFbin)Microsoft.Deployment.Resources.dll&quot;" />
    </Target>




-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net<mailto:WiX-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/wix-users


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net<mailto:WiX-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/wix-users



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to