Aug 07, 2017
04:42 PM
Flexera would be well served by making a public repo where users could modify the prereqs, Wikipedia style. The built in prereqs are just not good enough for the real world, quickly get stale, and prereqs for new products (for instance, new versions of .NET) are not brought out quickly enough. I don't use the ones made by Flexera. We've been using ReportViewer for many years and I have made my own over the years (from RV2010 forward). For RV2015, don't look at the registry. The reason is simple - when SQL Server 2014 installs RV, it doesn't use the same registry key as the RV2015 redist. Even though both are ReportViewer version 12.0. Look at the GAC. Use a file condition, comparing versions. The RV2015 redist lays down version 12.0.2402.15 of the following file: [WindowsFolder]assembly\GAC_MSIL\Microsoft.ReportViewer.Common\12.0.0.0__89845dcd8080cc91\Microsoft.ReportViewer.Common.dll So, add a file condition where you will run the prereq if 'a file with a certain version exists'. Use the path I just pasted above. Specify 12.0.2402.15 for the version to match. And run if the file's version is LESS THAN (or NOT FOUND).
... View more
Aug 07, 2015
04:00 PM
Hi, we just went through this exercise. You need to make 2 releases under Media-->Releases. One for MSI and one for EXE (the names we gave our releases). On the MSI release, give it an entry in Release Flags (we named ours ExcludePrereqs), and select No under Setup Launcher. On the EXE release, leave Release Flags blank and select Yes under Setup Launcher. Under Application Data-->Redistributables, right click on each prereq you have checked off and select Properties. In the Release Flags box, type IncludePrereqs. In our build process, we build the install using IsCmdBld twice. Once using EXE as an argument to -r, and once MSI as an argument to -r.
... View more
Jul 23, 2010
03:34 PM
This is definitely a PEBCAK issue. I downloaded WIX, created a VB.NET CA with it. Here's the code: Public Class CustomActions _ Public Shared Function BackupConfigFiles(ByVal session As Session) As ActionResult session.Log("Begin BackupConfigFiles") Dim configPath As String = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles), "My Product") For Each configFile As String In session.Database.ExecuteStringQuery("SELECT `File` FROM `File` WHERE `Component_` = 'ConfigFiles'") If File.Exists(Path.Combine(configPath, configFile)) Then File.Copy(Path.Combine(configPath, configFile), Path.ChangeExtension(Path.Combine(configPath, configFile), "bak"), True) session.Log("Changed extension of " & configFile & " to .bak") End If Next session.Log("End BackupConfigFiles") Return ActionResult.Success End Function End Class At this point, I compiled the code. WIX's fantastic MSBuild extension ran MakeSfxCA for me automatically. So, at this point, I have MyCustomActions.CA.dll built. I drop that binary into my install. I should mention that my install has a .NET 3.5 SP1 prereq, so I am definitely laying down .NET. I go to Installshield's CA screen, and tell it I have a new 'MSI DLL'-->Installed with this package. I point it at MyCustomActions.CA.dll. I tell it my function name is BackupConfigFiles, and tell it to run synchronously and also that I want it to execute with deferred execution in system context. I sequence it directly after InstallInitialize. I build the install, boot up a clean VPC with XP SP3 and run the install. The install (which, without the CA, runs fine), no longer installs. I review the detailed MSI log and see this: [CODE] Action 16:00:12: MyBackupFiles. MSI (s) (C8:28) [16:00:12:639]: Executing op: CustomActionSchedule(Action=MyBackupFiles,ActionType=3089,Source=C:\Program Files\My Product\MyCustomActions.CA.dll,Target=BackupConfigFiles,) MSI (s) (C8:0C) [16:00:12:639]: Invoking remote custom action. DLL: C:\Program Files\My Product\MyCustomActions.CA.dll, Entrypoint: BackupConfigFiles MSI (s) (C8:0C) [16:00:12:639]: Generating random cookie. MSI (s) (C8:0C) [16:00:12:649]: Created Custom Action Server with PID 1304 (0x518). MSI (s) (C8:28) [16:00:12:699]: Running as a service. MSI (s) (C8:28) [16:00:12:709]: Hello, I'm your 32bit Elevated custom action server. Action ended 16:00:12: InstallFinalize. Return value 3. MSI (s) (C8:28) [16:00:12:719]: User policy value 'DisableRollback' is 0 MSI (s) (C8:28) [16:00:12:719]: Machine policy value 'DisableRollback' is 0 MSI (s) (C8:28) [16:00:12:729]: Executing op: Header(Signature=1397708873,Version=405,Timestamp=1022853127,LangId=1033,Platform=0,ScriptType=2,ScriptMajorVersion=21,ScriptMinorVersion=4,ScriptAttributes=1) MSI (s) (C8:28) [16:00:12:729]: Executing op: DialogInfo(Type=0,Argument=1033) MSI (s) (C8:28) [16:00:12:729]: Executing op: DialogInfo(Type=1,Argument=My Software) MSI (s) (C8:28) [16:00:12:729]: Executing op: RollbackInfo(,RollbackAction=Rollback,RollbackDescription=Rolling back action:,RollbackTemplate=[1],CleanupAction=RollbackCleanup,CleanupDescription=Removing backup files,CleanupTemplate=File: [1]) Action 16:00:12: Rollback. Rolling back action: Rollback: MyBackupFiles [/CODE] OK, so what am I doing wrong? I would have at least expected to see 'Begin BackupConfigFiles' in the log file, because that's the first line of code in the CA's function! So, apparently, it's unable to find the BackupConfigFiles function? Please help!:confused:
... View more
Labels
- Labels:
-
InstallShield 2010
Mar 04, 2010
07:47 AM
Here's the problem. We can sign our installs, but only when logged in as the administrator account. Nobody else can sign, not even users who have admin privileges! Our previous certificate expired so we purchased a new certificate from Thawte. They sent us two files: a p7b and a pvk file. I used pvkimprt to create the pfx file, which I then imported into our build machine's certificate store (I put it in Personal-->Certificates). So, our install is pointing at the pfx file on disk and I specified the password and it builds & signs, but only under the administrator account! As soon as I log in as someone else, I get: ISDEV : error -6259: Internal build error I looked at the KB article for error -6259 and it says to try manually signing with SignTool.exe. That works fine no matter who I am logged in as! So, this works: signtool sign /f C:\ourcompany.pfx /p C:\setup.exe Done Adding Additional Store Successfully signed: C:\setup.exe So, I run sysinternals' processmonitor next. I see where the error happens, but there are so many events occurring (80,000) that I cannot really figure out what's causing the error. By the way, here's a successful log from Installshield: Resolving strings... Language English (United States) built ISDEV : warning -1527: No files are included in the project. Media table successfully built Started signing certificate.msi ... Successfully signed: certificate.msi Performing Upgrading and Patching Validation Started signing install.msi ... Successfully signed: install.msi Setup.exe created Started signing setup.exe ... Successfully signed: setup.exe And here's a failure log: Resolving strings... Language English (United States) built ISDEV : warning -1527: No files are included in the project. Media table successfully built Started signing certificate.msi ... Successfully signed: certificate.msi ISDEV : error -6259: Internal build error ISDEV : fatal error -5087: Stop at first error Release\Release - 2 error(s), 1 warning(s)
... View more
Labels
- Labels:
-
InstallShield 2010
Jul 15, 2009
12:19 PM
You probably should put these updated prereqs in the known issues webpage. I was just looking around at all the posts on this forum and I happened across this issue. If I hadn't looked at posts over the past month, my customers would have found this issue instead of me.
... View more
Aug 14, 2008
09:26 AM
There's a bug in the PRQ file for .NET 2.0 SP1 in IS2009, and I figure I would give everyone the heads up in here. Open any of the .NET 2.0 SP1 PRQ files in the prereq editor and switch to the 'Conditions' tab. Highlight the top entry (the one that looks for a specific value in the registry) and click Modify. The bug is that it's looking at the value defined in SP in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727, but it's doing a 'Not Equal To' comparison! (The value is 1 when 2.0 SP1 is installed, and 2 when .NET 2.0 SP2 is installed). When you upgrade .NET 3.5 to .NET 3.5 SP1, it upgrades .NET 2.0 to SP2. Now, when your users (who have .NET 3.5 SP1 installed) go to install your installation package (that requires .NET 2.0 SP1), it will tell them they need to install .NET 2.0 SP1 first (even though they have .NET 2.0 SP2)! The prereq needs changed to do a 'Greater Than' comparison rather than a 'Not Equal To' comparison. Hope this helps someone!
... View more
Labels
- Labels:
-
InstallShield 2009
Jan 18, 2008
09:21 AM
Seems like something that you'd think Installshield would let you pass in through a command line parameter, doesn't it? Unfortunately, it doesn't. We created a vbscript file to do this. Paste this into a vbs file (we call InstallShieldVersioner2008.vbs): ---------------------------------------------------------------- If Wscript.Arguments.Count < 2 Then Wscript.Echo "InstallShield Product Version Update Utility " & _ vbNewLine & "1st argument is the full path to the .ism file" & _ vbNewLine & "2nd argument is the version number" Wscript.Quit 1 End If ' Create the end-user automation object Dim ISWIProject Set ISWIProject = CreateObject("ISWiAuto14.ISWiProject"): CheckError ' Open the project specified at the command line ISWIProject.OpenProject Wscript.Arguments(0) : CheckError ISWIProject.ProductVersion = Wscript.Arguments(1) : CheckError ISWIProject.ProductCode = ISWIProject.GenerateGUID : CheckError ISWIProject.SaveProject: CheckError ISWIProject.CloseProject: CheckError Set ISWIProject = Nothing Sub CheckError() If Err = 0 Then Exit Sub Dim message message = Err.Source & " " & Hex(Err) & ": " & Err.Description Wscript.Echo message Wscript.Quit 2 End Sub ---------------------------------------------------------------- And we have multiple vbscript files that call the above file. These files look like so: ---------------------------------------------------------------- Option Explicit ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'edit the following entries const INSTALL_VERSION_SP = "1.1.500" const INSTALL_FILE = "D:\Build\Source\MyProduct.ism" ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' const INSTALLSHLD_PATH = "C:\Program Files\Macrovision\IS2008\System" const INSTALL_VERSIONER = "D:\build\buildmachine\InstallShieldVersioner2008.vbs" 'call Main subroutine Call Main() Sub Main() Dim objShell, CmdLine Set objShell = WScript.CreateObject("WScript.Shell") CmdLine = objShell.Run("cmd /C c: && """ & INSTALL_VERSIONER & """ """ & INSTALL_FILE & """ """ & INSTALL_VERSION_SP & """" , 5, true) If (CmdLine <> 0 and CmdLine <> 2) Then WScript.Echo "Error occurred executing Versioner against project " & INSTALL_FILE WScript.Quit(-1) End If ... End Sub ---------------------------------------------------------------- Good luck! Matt
... View more
Latest posts by osumatt
Subject | Views | Posted |
---|---|---|
2599 | Aug 07, 2017 04:42 PM | |
1878 | Aug 07, 2015 04:00 PM | |
2247 | Jul 23, 2010 03:34 PM | |
5578 | Mar 04, 2010 07:47 AM | |
1342 | Jul 15, 2009 12:19 PM | |
19678 | Aug 14, 2008 09:26 AM | |
815 | Jan 18, 2008 09:21 AM |
Activity Feed
- Posted Re: Prerequisite for Microsoft ReportViewer 2015 on InstallShield Forum. Aug 07, 2017 04:42 PM
- Posted Re: Generate both MSI and setup.exe on InstallShield Forum. Aug 07, 2015 04:00 PM
- Posted Having trouble with WIX DTF on InstallShield Forum. Jul 23, 2010 03:34 PM
- Posted Super annoying digital signing problem/bug? on InstallShield Forum. Mar 04, 2010 07:47 AM
- Posted Win Inst 4.5 Prerequisite Installation Woes on Vista on InstallShield Forum. Jul 15, 2009 12:19 PM
- Posted Bug in .NET 2.0 SP1 prereq on InstallShield Forum. Aug 14, 2008 09:26 AM
- Posted Re: Any way to auto increment the Version Number on InstallShield Forum. Jan 18, 2008 09:21 AM