Thank you for clarification and pointing out I can use ResolveCab() to copy my custom build CAB files to the final location. Sometimes I keep myself attached to one solution that I cannot see the simpler ones :(

Our installation platform takes the binaries from our build system (also custom build tool - builds localized binaries from Delphi sources, builds localized help files, ...), compares them to their previous versions and creates CAB files and MSI files as necessary. After the work is done it uploads all the changes to our FTP server and Amazon S3 for the update system to pick it up and install it on our costumers' computers. I don't have any experience with MSBuild so writing this as an application was much easier solution for me.

Thank you Blair, Rob and everyone else for your work on a such great tool as WiX is! Your work is greatly appreciated.

Ondřej Zarevúcky

On 19.1.2011 5:51, Blair wrote:

I can’t speak for Rob, but I believe he meant using MSBuild to call the WiX toolset to build your MSI instead of using your own code calling the WiX library directly. However, there is also no reason you can’t call the library in the way that you are, other than maintaining the duplication of effort of what is already done for you in Candle and Light.

As to your override of BinderFileManager: by the time the linker is done you can know which files need to be in which CABs and in what order, so I don’t see why you need to override both ResolveCab() and CopyFile(). ResolveCab() should return CabinetBuildOption.Copy with the path to the appropriate cab you are already building (you just need to either build that cab yourself in ResolveCab() or have already built it before you call the binder). No empty cabinet files and no CopyFile() override needed, and it works with both embedded and external cabs too!

Blair

*From:*Ondrej Zarevucky [mailto:[email protected]]
*Sent:* Tuesday, January 18, 2011 4:04 AM
*To:* Windows Installer XML toolset developer mailing list
*Subject:* Re: [WiX-devs] public sealed BinderCore class with internal constructor? :(

You mean MSBuild to build my own copy of WiX? I've tried it twice before and failed each time :(

There are few issues with custom built WiX:
- I would have to properly setup WiX build machine and keep it up to date with the WiX development - I would have to keep my WiX source code changes in the line with official WiX development - I would never be able to get the quality control of official WiX releases

My current solution is to reference official wix.dll in my project and use its public objects to build my installation package.

At first I create my XmlDocument containing the .wxs source then I pass it to the Compiler to get an Intermediate which I pass to Linker and Binder with my WixExtension attached. The final output is my MSI file with no temporary files I don't need (no .wxs, no .wixobj, no .wixpdb, no .cab) as everything is kept in memory.

The only thing I need to do is to digitally sign the resulting MSI and add the custom built CAB files for the installation package to be complete. CAB files are created and signed separately, because we want to control their changes to minimize the size of online updates. Some CAB files are even shared between different MSI databases.

Is there any issue with this use of WiX I'm not aware of?

Have a nice day
Ondřej Zarevúcky

On 18.1.2011 1:57, Rob Mensching wrote:

I'm curious, what are you doing? Is there a reason MSBuild doesn't work... and all that?

On Mon, Jan 17, 2011 at 11:28 AM, Ondrej Zarevucky <[email protected] <mailto:[email protected]>> wrote:

By overriding BinderFileManager.CopyFile() I've disabled creating the
empty cabinet files completely :)

The issue is solved and I'm much more happy now ;-)

I'm sorry for the emails. It helped me to summarize the problem and look
for new ideas...

Have a nice day
Ondřej Zarevúcky


On 17.1.2011 19:44, Ondrej Zarevucky wrote:
> Ok,
> I've noticed there are many more internal classes and methods used in
> the Binder :(
>
> I've moved to different solution: use the original Binder with my custom
> WiXExtension with custom BinderFileManager, which provides empty CAB
> archive and returns "CabinetBuildOption.Copy" option.
>
> Sadly the empty CAB files are still created, but at least no more disk
> space or computing power is wasted.
>
> Is there even better solution?
> Ondřej Zarevúcky
>
> On 17.1.2011 19:03, Ondrej Zarevucky wrote:
>> Hi,
>> I'm building installation building system for our internal use and I
>> didn't want to use the supplied Candle.exe and Light.exe, but I wanted
>> to use WiX from my .Net application. Moving compilation from Candle code >> to my application worked perfectly, but when I've started trying to move
>> and modify Light code and the main Binder class to my application I've
>> run into issue that Binder uses public sealed BinderCore class, which
>> has internal constructor. How can I create new instance of BinderCore?
>>
>> I'm trying to write my own version of Binder that doesn't create CAB
>> files. I create custom CAB files manually in different part of the process.
>>
>> Thank you for your help
>> Ondřej Zarevúcky
>>
>> ------------------------------------------------------------------------------
>> Protect Your Site and Customers from Malware Attacks
>> Learn about various malware tactics and how to avoid them. Understand
>> malware threats, the impact they can have on your business, and how you
>> can protect your company and customers by using code signing.
>> http://p.sf.net/sfu/oracle-sfdevnl
>> _______________________________________________
>> WiX-devs mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.sourceforge.net/lists/listinfo/wix-devs
> ------------------------------------------------------------------------------
> Protect Your Site and Customers from Malware Attacks
> Learn about various malware tactics and how to avoid them. Understand
> malware threats, the impact they can have on your business, and how you
> can protect your company and customers by using code signing.
> http://p.sf.net/sfu/oracle-sfdevnl
> _______________________________________________
> WiX-devs mailing list
> [email protected] <mailto:[email protected]>
> https://lists.sourceforge.net/lists/listinfo/wix-devs

------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand
malware threats, the impact they can have on your business, and how you
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
WiX-devs mailing list
[email protected] <mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/wix-devs




--
virtually, Rob Mensching - http://RobMensching.com LLC

------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand
malware threats, the impact they can have on your business, and how you
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
WiX-devs mailing list
[email protected]  <mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/wix-devs


------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand
malware threats, the impact they can have on your business, and how you
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl


_______________________________________________
WiX-devs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-devs
------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
WiX-devs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-devs

Reply via email to