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

Reply via email to