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]> 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]> 
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]> 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]> 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
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


       
-------------------------------------------------------------------------
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