Cava Packager - created exe not running - perl

Today I created installer using Cava Packager Perl. I can install the app using the installer that I have created. But the problem is in my system that app is running fine but in other system app is not running. That is its getting installed but app is not running.

Assuming that your platform is Windows and the version of windows on which you are running the application is equal to or greater than Windows XP, you can create a diagnostic version of your application that will give full detail of the startup and loading process on the failing machine.
In the Build Options tab of Cava Packager, check the following two options:
1.Package Diagnostic Executable with release
2.Allow Loader Verbose Output in Release Executables.
Create your installer package and install on the failing machine.
In the installed bin directory, assuming your executable is called 'myexecutable' you should run:
diagnostic myexecutable.exe
You should get full details of the loading process and where it fails.
There are two very common reasons for failure when deployed to another machine.
A module you are using is linked to a dll that Cava has failed to automatically bundle
You are trying to run on Windows 2000 - which isn't supported by Cava.
Note: I'm involved with Cava Packager development.

Related

Installshield - block or run major upgrade from script also for silent mode

Let's say there is installshield project consisting of several releases using the same script. This project builds several installers, for example:
Releases:
App A - builds into AppA.exe installation file
App B - builds into AppB.exe installation file
The project also contains Major upgrade items for each of them:
MajorUpgradeA - triggers for upgrade code of App A
MajorUpgradeB - triggers for upgrade code of App B
Everything works fine if only one of the apps is installed. If user have both of the apps installed then upgrade works incorrectly. With both when user tries to upgrade AppA using AppA installer file, then both AppA and AppB are uninstalled. It should only uninstall AppA, install new version of AppA and ignore AppB when AppA installer is executed.
How to prevent such behaviour, assuming that the project cannot be split to two seperate ones for each of the apps? Doing it in several different ways failed so far:
Triggering silent uninstall from script instead of using Major Upgrade items does not work because there can be only one active msi at a time during execution stage. It could be running in UI stage but then silent install does not work because it ignores the UI execution.
Upgrade components do not have any condition parameters/settings where it would be possible to set it to run such upgrade only if currently running installation has specific product code.

Upgrade ClickOnce Application using Windows Installer. Is this possible?

Few machines have 'MyApp.exe' installed using ClickOnce. And I have created a new MSI Windows Installer for 'MyApp.exe' using MS Visual Studio 2013 Setup and Deployment. I have a requirement that when my new MSI Installer runs it has to automatically remove/uninstall all previous 'MyApp.exe' (installed using ClickOnce) and install the new exe. Installer has to do it as part of its installation process.
Is this even possible? ClickOnce doesn't make any registry entries, so how can I get the Upgrade codes/Product codes which I can feed to Windows Installed 'Upgrade Paths' to upgrade it. ClickOnce is per user installation, but Windows Installer is not.
Is it even possible for Windows Installer to uninstall ClickOnce installed application ?
Any help is greatly appreciated. Thanks
ClickOnce is a per-user deployment experience and MSI is usually a per-machine experience. Per machine can't clean up other people's profiles. The only way I know is to do an active setup trick to run a program for each user who logs on and then execute a script to do cleanup. Either that or put first-run code in the applicaton itself to do the same.

Include drivers with application installation

I have created an application in C# that relies on a specific driver (a custom virtual hid driver based on VMulti).
Currently, I have everything working and I want to combine both the application and driver into one installation package. As of right now, my application part has a .exe file and a .dll file. My driver has an .inf and .sys file, hidkmdf.sys, and WdfCoInstaller01009.dll (this dll is from the WDK). I am not able to install the driver through the traditional method of right-clicking the inf and clicking install. Instead, I use devcon to install it (command is "install inffile.inf hardwareid")
I tried using InstallShield LE, but I am only able to install the application, not the driver. After doing some searching, I found people using DIFxAPP to create the installation framework for drivers, however, I am not sure if this can be integrated into InstallShield so that the driver is installed during the application installation process.
So my main question is: What is the best and simplest method for combining application and driver installation into one package (meaning the setup.exe will install both the driver and the application)?
I am very new to driver development and application deployment, so any suggestions are welcome.
Thank You
EDIT: It is preferred that the solution does not require any paid tools.
Acctually, exists a many ways to implement this which depends on your Windows Installers skills.
You didn't specify target OSes for your application, that's why can I give you some ways:
PnpUtil.exe internal Windows 7 utility (only for Windows 7)
DPInst.exe included to WDK
DifXAPI merge module.
You can install drivers with help of all these utils via Custom Actions.
NOTE: That your driver SHOULD BE signed, otherwise you will receive error during silent installation.

TFS 2010 - Nightly Builds of WiX MSI for WebApplication/Windows Service and install to web server

Can you please enlighten me on my task?
My task is to create a nightly builds of MSI (done in WiX) and install it to our web server using powershell.
TFSBuild server build an MSI
Run Powershell to uninstall and install the newly build MSI.
Run Powershell to Start the windows service.
The WiX MSI contains WindowsService and a Web Application.
Below are list of what i have done so far:
Solution.sln : Configuration Manager and "x86|debug" (check all the files that needs to be built '.wixproj' already checked)
Created a build definition and set "x86|debug" for configurations to build and set projects to build is my solution file.
but after the build has completed, there is no MSI files on the binaries build folder on the build server. :(
Thanks in advance.
Few pointers:
Have you installed Wix on the buildserver?
Which version of Team Build are you using? 2010 has the preference here as the tooling has progressed a lot since 2008.
Did you configure to run msbuild in auto or x86 mode (auto can result in 64-bit which has some issues with the latest stable version of wix) link link
Is your build agent running on a 64 bit server? If so, you either need to run the build agent under an administrative account or do some mucking around in the registry to fix issues with Wix. link
To install the build using Powershell, I personally prefer TFSDeployer, which can monitor your build output and trigger powershell scripts based on the build outcome. It takes away the deployment responsibility from the build server and saves a lot of headaches around security and account configurations.

Deployment ASP.NET website: Why *.msi required if setup is there?

I have made website deployment project for ASP.NET 3.5 website. After build i have found two setup 1. MyApp.msi and 2. MyApp.setup.
At deployment PC when i just copy and paste only setup file it will prompt error message for finding msi.
After copy msi when i again run setup i will install successfully.
I am not able to find why we need to have both setup and msi at deployment PC?
You actually only need the .msi for successful deployment. The setup.exe file is only used to detect if Windows Installer is available on the machine, then it launches the msi.