Below is a list of articles I’ve written over the years. If you have ideas within the scope of Windows Installer, Microsoft .NET, COM, COM interoperability with .NET, or other related topics please add your comments to this post.
- Custom String Formatting in .NET
Discusses the implementation of custom format providers for existing types and custom formatting for user-defined types.
http://www.codeproject.com/csharp/custstrformat.asp – April 27, 2004
- Hosting .NET Controls in Java
Using JNI and some COM interop magic, you can host .NET Windows controls directly in your Java applications.
http://www.devx.com/interop/Article/19845 – January 21, 2004
- Using XML Digital Signatures for Application Licensing
Use XML Digital Signatures for a request- and signing-based licensing mechanism for your applications.
http://www.codeproject.com/dotnet/xmldsiglic.asp – August 8, 2003
- Importing Type Libraries
Using alternatives to importing type libraries and COM objects can improve the portability of your source code.
http://www.codeproject.com/tips/importtlbs.asp – February 23, 2003
- Creating Search Pages with Index Server and .NET
Combine the ADO.NET techniques you know – and perhaps some you don’t know – with the power and flexibility of Microsoft Index Server and ASP.NET to create easy – yet powerful – custom search pages for your Web site.
http://www.codeproject.com/aspnet/search.asp – January 26, 2003
- Shell Extensions for .NET Assemblies
Shell extensions to distinguish between .NET assemblies and Win32 applications and libraries.
http://www.codeproject.com/tools/asmshell.asp – August 19, 2002
- Embedding .NET Controls in Java
Learn to embed .NET user controls in Java applications, applets, and beans using COM to bridge the gap between the two frameworks.
http://www.codeproject.com/dotnet/javanet.asp – August 19, 2002
- Windows XP Visual Styles for Windows Forms
Add Windows XP Visual Styles to your .NET Windows Forms.
http://www.codeproject.com/csharp/dotnetvisualstyles.asp – August 18, 2002
- Role-based Security with Forms Authentication
Provides insight and tips on using role-based (groups) Forms Authentication in ASP.NET, which has only partial support for roles.
http://www.codeproject.com/aspnet/formsroleauth.asp – August 18, 2002
- User Controls for Windows and the Web
This tutorial will cover basic design strategies for coding your controls for use with both Windows and the Web. Topics include basic control design, events, COM dispatch events, and security concerns to ensure that your controls work on either platform. Additional topics not covered in depth include setting toolbox icons for your control and setting category and description attributes for your public and protected properties and events to make your control as robust as the controls in the .NET Framework.
http://www.devhood.com/Tutorials/tutorial_details.aspx?tutorial_id=388 – April 2, 2002
- XML, Part 3: XSLT Stylesheets
This tutorial will cover basic transformations using XSLT to produce HTML.
http://www.devhood.com/Tutorials/tutorial_details.aspx?tutorial_id=324 – March 7, 2002
- XML, Part 2: XML Schemas
This tutorial will be short and will present how a namespace is defined. Defining a namespace with a schema is important when your XML document must be not only well-formed but must match a particular namespace and structure exactly.
http://www.devhood.com/Tutorials/tutorial_details.aspx?tutorial_id=218 – February 4, 2002
- XML, Part 1: XML and Namespaces
I’m sure by now that you’ve heard a lot about XML and about how great it is. You might be wondering, though, what is XML? In part 1 on this series on XML tutorials, beginning and intermediate users will learn the answer to that question, along with what namespaces are and how XML differs from HTML.
http://www.devhood.com/Tutorials/tutorial_details.aspx?tutorial_id=170 – January 30, 2002
Hi Heath –
So "they" say that it is a known bug in Patchwiz.dll which is preventing me from building a patch with the OptimizedInstallMode=1 set in MsiPatchMetadata table.
"They" also say that some people have reported that the Patchwiz.dll found in the Vista pre-beta SDK fixes the issue.
This is not a happy solution for me as you can imagine – my bosses will not take kindly to playing high and mighty with pre-beta code for production releases.
Have you heard anything about this so called bug and what can be done about it? I’d like to play with the OptimizedInstall patch functionality in Installer 3.1 and so far have had no luck using Macrovision AdminStudio 7.
Would you care to write some more on patch methodology, best practices, and gotchas?
Regards,
William – TheFyingFox
While suggestions for future topics should actually be directed at http://blogs.msdn.com/heaths/articles/suggestions.aspx, I’ll go ahead and answer (and remove the trackback that, perhaps, is a little misleading).
PatchWiz.dll v4 is actually what we’re transitioning to use internally for our patch build system. Do keep in mind that PatchWiz.dll merely outputs a patch that can support running under MSI 1.0 even. You can control whether or not the new features are utilized and even the minimum MSI version required to install the patch. Hopefully that puts you and your bosses’ minds at ease. You can still verify patch output as you would normally under PatchWiz v3.1 and older.
Regarding the OptimizedInstallMode bug, I can’t say that I’m familiar with it. I know that it would’ve caused us problems as pointed out in http://blogs.msdn.com/heaths/archive/2005/04/12/407665.aspx. I do know of a couple issues so perhaps if you enlightment me to what exactly the problem is that you’re having I can hopefully be more helpful.
Hi again Heath, thank-you for your response. I’ve been crazy busy, myself….
In any event, the problem is that, when I set the "OptimizedInstallMode" to ‘1’ in the "MsiPatchMetadata" table, then build the patch (Using Macrovision InstallShield Admin Studio 7), I get a fatal "ERROR: Patch Metadata property: ‘OptimizedInstallMode’ is not a generic MSI property."
Macrovision said, I’m quoting verbatim:
"From our understanding, there is a bug present in version 3.1 of patchwiz.dll that is provided in the Windows Installer SDK to create Windows Installer patches. One of our customers posted some information in our community forum after they had contacted Microsoft (see the last post of the following thread): "I have got a reply on problem from Microsoft, and they say it’s a bug in the PatchWiz.dll and it should be fixed if you use the PatchWiz.dll from the Vista SDK (beta).""
Well, this is all hearsay which bugs me greatly, and further to that, the 4.n PatchWiz.dll doesn’t work for me in this context either, possibly because one can’t just play fast & loose with individual SDK components.
Regardless, it is frustrating that Macrovision wouldn’t say anything more than reporting on what one of their customers say they heard from an un-attributed Microsoft support individual. I bet you can sense my annoyance, eh? 🙂
Anyway, comments welcome, although I understand if you don’t feel obliged. Perhaps all you "need" to say is that you have heard similar things from inside sources, in which case I will then see if I can get PatchWiz.dll 4.n integrated into the Admin Studio interface after all.
Thank-you, and have a great day!
William
Fox, yes this is a bug in released versions of PatchWiz.dll and it is fixed for future versions. PatchWiz.dll version 4 is still in beta so the change might’ve gone in after the beta version that is currently publicly available on beta.microsoft.com.
If you have any future questions on this topic, could you post to a more appropriate blog post at http://blogs.msdn.com/heaths/archive/2005/04/12/407665.aspx? I certainly welcome questions but people searching for answers might have better luck with relevant search results if the posts and related questions are better organized. Thanks!