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=""$(DTFbin)MakeSfxCA.exe"
"$(FullOutDir)$(TargetSfxName)"
"$(DTFbin)$(TargetArchitecture)\SfxCA.dll"
"$(FullOutDir)$(TargetFileName)"
"$(ProjectDir)CustomAction.config"
"$(DTFbin)Microsoft.Deployment.WindowsInstaller.dll"
"$(DTFbin)Microsoft.Deployment.Resources.dll"" />
</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