473,856 Members | 1,560 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Action Text in Visual Studio C# Custom Actions

I have C# custom actions and merge modules created in Visual Studio to
install some components of the application I am working on. The merge
modules are used with an Install Shield 9 project. When my C# custom
actions run, the progress dialog doesn't display any text as to what
is happening. I have explored several options as follows.

Normally, you can enter the action text in the ActionText table by
giving the name of the custom action and then your desired description
and template. Since Visual Studio uses GUIDs in the custom action name
and those GUIDs change upon every build of the merge module, it is not
practical to enter the action text in the Install Shield project.

The next logical place to do something is inside the custom action
itself using the Windows Installer APIs. There is an API called
MsiProcessMessa ge that indicates it can be used to update the action
text. There is even a C# wrapper class posted on CodeProject.com
(http://www.codeproject.com/csharp/msiinterop.asp) that provides a C#
interface to the common Windows Installer APIs. The catch, however,
is that you need to have an MSIHANDLE to the current instance of the
Windows Installer database for the install that is being run. The
help idicates that the MSIOpenDatabase API will return an MSIHANDLE,
however, it is not to the instance that is loaded into memory at
install time so changes don't effect the progress dialog displayed.

Using MsiProcessMessa ge would be ideal as it appears that I would be
permitted to change the action text as various parts of my custom
action run.

Does anybody know how I can obtain a handle to the installers instance
of the MSIHANDLE from a Visual Studio C# Custom Action, or even some
other way to update the action text.

Thank you for your help.

Nov 16 '05 #1
0 3655

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

by: Vai2000 | last post by:
Hi All, I need to execute custom action during installation of my program (through MSI). Creating the MSI was pretty straight fwd. After that I went into the Custom Action Editor and added the custom action (EXE) at the install condition. Unfortunately when I roll out my MSI I don't see the custom action being executed. For now I just wrote few lines on my customAction.exe (like hello world etc) its a console application. Can someone...
by: Gabriel Lozano-Morán | last post by:
We have developed an application that will replace the older version. The older versions comes in two flavors, a Lite and a Pro version. I can successfully remove the previous version of either the Lite or the Pro version by sync'ing the "Product Code" and increasing the version number of the new setup, but I really need to remove both versions upon a successful installation. So I have added two custom actions under "Commit" and I have...
by: Kevin G. Anderson | last post by:
What: CAUG Meeting - Visual Studio 2005 Tools for Office When: Thursday, April 27, 2006, 6PM Who: Jacob Cynamon, Microsoft Where: The Information Management Group 200 W. Monroe St. Suite 900 Chicago, IL 60606 (312) 222-9400 Location: www.imginc.com/IMG/About+IMG/chicago.htm info@caug.com and add "ATTENDING" to the subject
by: Eric | last post by:
Using VS.Net 2003 .Net framework 1.1 SP1 Our installation project calls a Custom Action dll to perform post install actions. It fails if the .msi file is launch from a directory that contains spaces, such as: My Install Folder\SetupDir The exception thrown is:
by: kplkumar | last post by:
Hi This is what we have, our MSI has custom actions which are .vbs which essentially calls a batch file that in turn calls .sql files to install the database. The vbs file has something like, Set WshShell = CreateObject("WScript.Shell") WshShell.Run "\Somepath\DB_Setup.bat",1,TRUE
by: =?Utf-8?B?SmFjayBTbWl0aA==?= | last post by:
Hello, I have a solution that contains a C# application that is installed and runs as a service. The solution also contains several DLLs, some of which are C# assemblies and some are C++ DLLs. The service application references the DLLs. The service app also has an installer class that is set up to run as a custom action in the Setup Project. I am having a problem with signing an assembly. If I add a strong name key to one of the...
by: Matt F | last post by:
I have a deployment project that I'm setting up. I need to perform a different custom action based on whether this is a first time install or an update. Does anyone have any idea if it's possible to set the Condition property of a custom action to determine if the currently running install is upgrading a previous installation and if so how? I'm also open to other methods of acheiving this functionality.
by: =?Utf-8?B?QWxoYW1icmEgRWlkb3MgS2lxdWVuZXQ=?= | last post by:
Actually, my installer package is not for a Windows Service, but for a WinForms application. Well, it is kind of both: this is a multi-project solution with its main target being a WinForms application, but it also includes a Windows Service. My custom install actions configuration includes output from a Class Library project that contains the custom actions followed by the output of the Windows Service project to register the service....
by: KennethLundin | last post by:
Hi, i'm developing a solution in VS9/CSharp. Now I'm constructing a deployment project for my appliation (thick, database driven, winforms, standard, good old type of application). During installation I also install the PostgreSQL database and along with that I need to execute some Custom Actions. I've created a Custom Installer component in CSharp and calls it on Install/Rollback/ uninstall and everything works great (Custom Actions...
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.