How to ignore some features in updatemode in an InstallScript project? - installshield

I am developing an InstallShield InstallScript project (not MSI) and currently working on the "updatemode" behaviour of the setup.exe program.
I would like to know if it is possible to ignore the update of one specific feature and still update the other ones.
The problem is that the program needs to determine whether the feature should be updated during the execution, which means the feature has to be embedded in the update program.
I've already tried to use the InstallScript function FeatureSetItem, but when I set my feature to false, the feature is not ignored, but uninstalled by my update program.
Any idea would be helpful.

Not sure what it is that you don't want to be updated or why, but if it's just files then set the components for the feature to "overwrite by date" or "overwrite by version".

In InstallShield, go to "Releases". Create a new "Release" and then go through the Release Wizard.
One of the windows in the release wizard allows you to check/uncheck the features for that release. Simply uncheck the features that you do not want to update. This way, those features will not be included when you build that particular release configuration. They will still be included if you build using the original release configuration.

Related

MPS-based IDE: what are the best practices for embedding JRE/JDK?

MPS enables me to build standalone IDEs (see https://confluence.jetbrains.com/display/MPSD34/Building+standalone+IDEs+for+your+languages), however Windows builds would definitely need a JDK/JRE. The users get confused with installing Java, etc.
Are there "pre-built" JDKs compatible with MPS (IntelliJ platform)?
What are the approaches to update the bundled Java? IntelliJ platform does have an updater, however does it support updating the Java runtime? The updater is Java-based, so I wonder how does it update Java runtime when using the same runtime.
Can something like JetBrains Toolbox to manage updates of the "third-party" MPS-based IDEs?
PS. I'm using for MPS 2017.3, mbeddr if that matters.
I'm not exactly sure if the are publicly available but you can check JBs teamcity at teamcity.jetbrain.com where all their open source stuff is available.
The updater for intellij performs incremental updates to the jar files. It is not open source and it usually only used to do small updates. If there is a major update like new platform with a bunch of API updates it is not used and the user has to download complete new installer. In MPS the incremental updater is not used. So each MPS updates is complete new IDE to be downloaded by the end user (or JB toolbox).
I don't know how the JB toolbox works but you can use MPS/IntelliJs normal update mechanics to notify users about updates to your custom IDE. In the branding you create for your custom IDE there is field where you can point it to a update location. Which then serves a xml file with the update information. The format is pretty straight forward. Here is a sample. Your IDE will check on start up or at least once a day if an update is available.

Specify C# version in ReSharper

I'm slowly migrating projects to VS2017 from VS2015. We have distributed team and until all is verified (there are issues with e.g. Reporting Services, SSIS, etc as there is not fully finished tooling - SSDT) I need the projects could work in VS2015 without changes.
C# projects in VS2017 use latest C# version by default in project settings (in my case it is C# 7.1) and ReSharper started to offer refactoring to these new features. However, I need to resist the temptation and wait until all is migrated (while I still need to be able to write and review code). I need to specify the version of C# to be 6.0. I can do it on per project basis but I would like to avoid this as I would have to go through each project, modify it and push it to source control and when the migration is done then I would have to switch it back.
Is there a way in R# to globally set the C# version in options (haven't found such a setting but maybe there's some hidden option?)
(VS2017 - 15.4.5, ReSharper 2017.2.2)
EDIT
For Typescript there is possibility to specify language level - either auto-detection or exact version. So for C# it could be similar - auto-detection from project settings or exact version. It would allow code review for specific language version without modification of the projects.
I'm adding here also the link to R# support page as I asked there too
Add the following string to solution settings file ({Solution name}.sln.DotSettings file in the solution's root folder)
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/#EntryValue">CSharp60</s:String>

Adding InstallShiled project to another InstallShield project

I have two installshield projects, I want to ask is it even possible to wrap an existing ism project within a wrapper ism project?!
The desired functionality is:
When i use custom installation and select to install the nested project it will behave as like i used it's native installer.
I'm using installshield 2011 Professional edition.
Thanks for helping.
I encountered this SAME problem. I wanted an installshield project to run another installshield project (which was an updater) to bring the software up to date before installing the first installer.
I solved this by creating a batch file.
1) The user launches the install msi.
2) The installer prerequisites detects that "previous version must be installed" by checking the registry and runs the batch file
3) The batch file kills the current process of installer and runs the second installer
4) Once the second installer is finished, the batch file re-runs the first installer (by using the batch command START /WAIT, which waits for a process to finish)
5) Now that the second installer was installed, the prerequisites doesn't trigger, and you resume with the installation.
You can, with caveats. If both of your projects are Basic MSI or InstallScript MSI, you will encounter the limitation that Windows Installer will only allow one MSI at a time. The end result of that is you can either run both safely through actions in the UI sequence (and fail if they are run silently), you might be able to use MSI Chaining (which I don't personally recommend), or turn one of the MSI packages into a prerequisite, or you have to find another way.
One option could be to add a third project, a pure InstallScript project, as a wrapper. If you go down this route, you have to consider what user experience you want for installation, maintenance, and uninstallation, including deciding what shows up in Programs and Features. Note that in later versions of InstallShield the Suite or Suite/Advanced UI project type is designed for this, but only in the Premier edition. (The Advanced UI project type in the Professional edition only allows for one main package, and you have two already.)

Installshield: Upgrade Windows Installer do not update anything?

I have created an MSI installscript project in Installshield. I went to Project Assistant>Application Files, then added the application files(package) and built Setup.exe to install.
After installed these files, I went back to Project Assistant and added some application files, then i changed the product version for updating. Finally, i built the Setup.exe again. When i run the Setup.exe, the automatic update (Upgrade Window Installer Setup) asked me to update a new version. After finishing, I checked Program Files(x86) and the updating didn't do anything, the old package was still here.
How can i update my new package? Is there any way to disable the Upgrade Window Installer Setup?
Thanks for the help.
In my humble opinion, most likely, you added new files to existing Component with keypath, which didn't change. Also you should check "Add\Remove Programs" snap-in in Control Panel to see if upgrade was applied - there should change version of your product.
So, I recommend you check Components, and re-allocate files to new Components if I had right. Also please read more about Components and Files. Could start from here.
Two words about InstallScript MSI project. From InstallShield documentation: Because this project type uses two different engines, it is more complex than pure InstallScript or Basic MSI installation projects. It is recommended only for advanced users.
So, if possible, use Basic MSI project - it's a bit simpler than InstallScript MSI for begginers.

Identifying the product language for already installed application

I have multilingual installation setup program, where user can select 5 different language. Consider I have installed application in German language. whenever I am uninstall the application or update the previous setup it is launching in German. I would like to know how setup will detect the older installation product language.
In my case I have created a upgrade only installation where it will detect the previous version of the installation and do the major upgrade. In the major upgrade I don't want to display the language dialog. The update should happen in the earlier installed lanugage.
Does installscript has any API to detect the earlier installed applications product language.?
I belive there should be some way to do like that as uninstallation does, Can any body give me some suggestion.
Thanks in advance.
For a pure InstallScript installation, this is tracked in the uninstall key's command line. Look for the /L parameter.
For Windows Installer-based installations, this is remembered automatically by Windows Installer tracking which transforms are applied at initial installation. This includes the language transform.

Resources