tag:blogger.com,1999:blog-81106732750135523162024-03-14T04:31:22.517+08:00Try this: InstEdNeilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.comBlogger34125tag:blogger.com,1999:blog-8110673275013552316.post-40367281253722173162010-05-11T07:01:00.001+08:002010-05-11T07:02:44.333+08:00New versions of InstEd and InstEd Plus releasedThey were released on the 27th April actually. A bit slow to update.Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com2tag:blogger.com,1999:blog-8110673275013552316.post-24375747099874640742010-04-30T18:19:00.000+08:002010-04-30T18:20:11.411+08:00ini file importImplemented in InstEd for the next release.Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com1tag:blogger.com,1999:blog-8110673275013552316.post-11973177580437849722010-04-16T11:19:00.002+08:002010-04-16T11:50:04.466+08:00Visual Studio 2010Visual Studio 2010 was released recently. With it comes a new C++ runtime that includes a parallel patterns library, targeted at making it easier to write programs that utilise all the cores in a modern processor.InstEd does use OMP with some success. The problem with OMP is that it cannot be used with Microsoft's Profile Guided Optimisation. At least not with Visual Studio 2008's linker.I plan Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com3tag:blogger.com,1999:blog-8110673275013552316.post-84022098178221970432010-03-18T15:41:00.003+08:002010-03-18T16:07:46.105+08:00New InstEd release coming soonThe last release featured a fairly large re-architecture, which introduced a few annoying bugs.There was even a comment in the code saying something to the effect "Changed this, hope it doesn't break anything."Sure enough that change broke something.The next release fixes those (the ones I know about) and introduces an oft-requested feature: Replace and Replace All.This will hopefully speed up Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com2tag:blogger.com,1999:blog-8110673275013552316.post-35909126538889885302010-02-15T17:00:00.002+08:002010-02-15T17:09:00.057+08:00WoW 64Wow, a 64 bit InstEd. Wouldn't that be great. Well, good at least.It would be a fairly simple task to compile a 64 bit InstEd.The sticking point comes with the Windows Installer SDK. Microsoft do not provide 64 bit versions (at least I can't find them) of 2 dll's that InstEd uses, specifically mergemod.dll and evalcom2.dll.One day I may knock up a 32 bit proxy process for calling these dll's, Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com1tag:blogger.com,1999:blog-8110673275013552316.post-10924480691911060312009-09-02T10:27:00.003+08:002009-09-02T11:12:23.279+08:00Speed DemonsThere is a whole genre of utilities written as quickly as possible, to satisfy a short term need, never to see the light of day past next week. But somehow they persist eternally as the worst example of the author's code, simply because they are the only thing that fills that need, and no one has the motivation to re-write them.I suspect that Orca was probably written as such a utility. Somehow Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com0tag:blogger.com,1999:blog-8110673275013552316.post-25883220239775787072009-04-02T13:45:00.002+08:002009-04-02T13:51:09.299+08:00New InstEd Plus videoI have added a new video to the InstEd Plus page showing the source tree management options in the latest version, such as extracting files from the msi or merge module, and adding files to the source tree.Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com0tag:blogger.com,1999:blog-8110673275013552316.post-26119597691746926192009-03-30T12:10:00.006+08:002009-03-30T13:12:53.619+08:00Burgling the _Storages table.I was recently asked why InstEd doesn't allow the user to save binary fields from the _Storages table. The simple answer is that the Windows Installer API doesn't support it.The long answer is that InstEd does let you extract them, you just have to hoodwink it.As some background, the _Storages table is a representation, in Windows Installer table form, of the OLE structured storage list of "Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com0tag:blogger.com,1999:blog-8110673275013552316.post-3615733411210340132009-03-05T17:27:00.002+09:002009-03-05T17:33:13.948+09:00InstEd Plus: Just what you need!I am pleased to finally announce the availability of InstEd Plus.InstEd Plus is a plugin module to InstEd.InstEd continues to be the most effective table editor available and will remain free to download and use in any (legal) scenario. However it is acknowledged that some tasks are just time consuming when dealing with tables alone (e.g. adding files to an installation, editing dialogs, etc).Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com2tag:blogger.com,1999:blog-8110673275013552316.post-65362047901436728692009-02-27T09:40:00.003+09:002009-02-27T10:48:54.801+09:00Searching the easy, but hard, wayThe Find dialog.Accessible via CTRL+F.Shrouded in mystery (because someone forgot to give it a title).Contains a checkbox that may have no meaning for some users:Use Regular ExpressionsFor many people Regular Expressions may simply refer to some form of toilet humour. However for others it is a very powerful tool in the search arsenal.Regular Expressions are a method of describing very powerful Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com0tag:blogger.com,1999:blog-8110673275013552316.post-76203114454853706252008-11-26T17:48:00.007+09:002008-11-26T18:09:17.703+09:00Lower your colours!I will persist with this spelling of colours. Please forgive me if it offends, since I can't win either way.appEditor's colour scheme was panned by some of the people kindly testing the product. Therefore InstEd was released with their preferred colour scheme*, which I agree is an improvement.However Pär Leeman kindly sent me his preference:If you want to make your own colour scheme, jump into Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com0tag:blogger.com,1999:blog-8110673275013552316.post-69118608795723244662008-11-21T15:50:00.003+09:002009-07-07T11:29:09.525+08:00Working with Cabinets in InstEdThe new version of InstEd provides a mechanism for building/rebuilding cabs in the msi.Help documentation on this feature is now available here.Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com0tag:blogger.com,1999:blog-8110673275013552316.post-40846930027746262492008-11-12T16:05:00.002+09:002008-11-12T16:07:57.993+09:00InstEd 1.5.3.7 Released!Finally, the new version is available for download.Release notes here.Documentation on new features will follow shortly.Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com1tag:blogger.com,1999:blog-8110673275013552316.post-83180499835349675402008-09-30T12:41:00.003+08:002008-09-30T13:06:37.363+08:00Tips and Tricks Part 4 - Moving component elementsWhile it would be great to have drag and drop of things like files and registry entries between components, in the meantime there is a nifty trick to move multiple elements between components.The basics of the trick is to rename the source component to a temporary name, updating the references of only those elements that you wish to move. Then rename the temp component to its original name, Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com0tag:blogger.com,1999:blog-8110673275013552316.post-16099531317792289892008-09-17T11:05:00.005+08:002008-09-17T11:38:45.971+08:00Is a Managed InstEd Manageable?For the sake of curiosity, and also to explore the possibility of utilising some of the WPF functionality, I thought I would compile InstEd as a managed (C++/CLI) .NET executable.The first issue that I encountered was that the default boost regular expression object library (.lib) could not be linked in successfully, due to incompatibilities with compile time options with the lib, and compile Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com0tag:blogger.com,1999:blog-8110673275013552316.post-17576524185772785362008-08-18T11:54:00.003+08:002008-08-18T11:57:45.095+08:00Tips and Tricks Part 3 - Generating a new GUIDFields which are designated to contain GUIDs (e.g. Component::ComponentId) will present a "New GUID" button when edited.Additionally, all string fields can be replaced with a newly generated guid by pressing CTRL+G when the field is selected but the editor is not open. Most field editors also support CTRL+G.Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com0tag:blogger.com,1999:blog-8110673275013552316.post-65683632485865444732008-08-18T11:47:00.003+08:002008-08-18T11:54:48.109+08:00Tips and Tricks Part 2 - Displaying the current file's pathClicking on the filename tab will display the path of the loaded file in the status bar.In the case of transforms, the status bar will display the transformation chain (base msi, and the sequence of transforms that have been applied). In this case, it will show the filenames only.Alternatively, as with most applications, clicking File->Save As will ensure that the Open File dialog is in the Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com0tag:blogger.com,1999:blog-8110673275013552316.post-18567899704357814892008-08-01T16:00:00.008+08:002008-12-14T23:38:44.585+09:00Tips and Tricks Part 1 - Edit tracking and undo"Tricks and Tips" would just give the wrong impression.InstEd supports viewing transforms (mst files) and highlights all the changes that the transform makes to the base msi.Under the hood, this is implemented by loading all the tables of the base msi and all the tables of the transformed msi. Some magic within the underlying InstEd table structures then does diffing of each row/cell to determineNeilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com1tag:blogger.com,1999:blog-8110673275013552316.post-80806699115023077452008-07-23T17:07:00.002+08:002010-04-15T23:11:49.376+08:00Help - External ToolsThe Online Help for InstEd has been extended with a section on External Tools.Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com0tag:blogger.com,1999:blog-8110673275013552316.post-26731884444869854302008-06-24T11:03:00.002+08:002008-06-24T11:41:02.804+08:00TypeLib or not TypeLibThat is the question.Whether tis nobler in the mind to sufferthe slings and arrows of outrageous fortune,or just use the bloody Registry table?It seems that Microsoft have effectively deprecated the TypeLib table.From the msdn docs:Installation package authors are strongly advised against using the TypeLib table. Instead, they should register type libraries by using the Registry table. Reasons Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com10tag:blogger.com,1999:blog-8110673275013552316.post-11903122360888877802008-06-10T16:14:00.010+08:002008-06-10T17:00:03.854+08:00What! Are you blind?I didn't say it out loud, but I was thinking something similar.Personification of inanimate objects like compilers is daft,but it feels good. That's my excuse anyway.Here's the situation.Given this C++/CLI code:template< typename T >ref struct A{ ~A() { }};ref struct B{ A<int>^ a;}The linker generates this error:error LNK2020: unresolved token (06000414) A<int>::DisposeKnowing Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com3tag:blogger.com,1999:blog-8110673275013552316.post-20534441617561268012008-06-06T12:10:00.002+08:002008-06-06T12:18:47.945+08:00InstEd 1.5.2.3 Released!1.5.2.3 has been released. With huge performance improvements, the addition of forward and back navigation, and quite a few bug fixes, it is now better than ever, making packaging even more productive.Release notes here.Download here.Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com1tag:blogger.com,1999:blog-8110673275013552316.post-33872759572663579222008-05-29T09:11:00.002+08:002008-05-29T09:38:33.162+08:00Is Null Null or Not NullOne of the people on the AppDeploy forums recently asked for the option of having null fields be represented in the tables by an empty string instead of the string "<null>".Another person responded by saying that that would be bad, because a null string is not the same as an empty string.Well, usually that is correct, and can be quite an important distinction. In most databases, a null Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com0tag:blogger.com,1999:blog-8110673275013552316.post-36410749990780500512008-05-23T14:37:00.002+08:002008-05-23T14:44:02.537+08:00Orca east bugs, againJust to provide an update to the Vista SDK Orca bug, here is the Windows Installer Team Blog's description of the bug:Updates that can be found in the Windows SDK for Windows Server 2008:Orca crashes when a transform is generated and a row is deleted from the current table Orca crashes if the user attempts to generate a new transform and deletes a row from an existing table. (Using Orca, select Neilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com0tag:blogger.com,1999:blog-8110673275013552316.post-86177609632244848992008-05-14T12:47:00.007+08:002008-05-14T13:07:11.217+08:00Orca Eats BugsIt's good to know that Orca is at least getting bug fixes.Orca 4.0.5299.0 which comes with the Vista Platform SDK suffered a problem where deleting certain rows in a transform would cause it to crash.The repeatable example (and it may not be confined to this) is a transform that deleted the only row in a table. You can reproduce it by starting Orca and opening "c:\program files\orca\orca.dat" (orNeilhttp://www.blogger.com/profile/04480793102032206844noreply@blogger.com0