What are .nsh files? Can't find any docs for it - file

I recently saw a .nsh file for the first time.
What is it? I can't find any docs regarding this language.
Does anyone know a good place to learn about it?

It is an installer file used by NSIS (Nullsoft Scriptable Install System), a program used for creating Windows installers; saves header information that can be included across all .NSI installer scripts; helps setup common environment conditions for an installation.

Related

VSCODE deletes my library line inclusion when saving automatically

I am programming C on VSCODE but I have this annoying problem. When vscode automatically saves my work, it deletes the line that has the library inclusion that I need. So when I compile it gives me an error that I did not specify the function. Someone can help me?
I don't know how to resolve.
You might have installed a corrupted version of vs code or the library files of the vs code and then location where you are saving your programs might be in different location. For example
The libary files of vs code might be in c drive and the program files might be in onedrive folder.
Try reinstalling it from an authentic source if the second stated problem is not the case. If the problem still continues then please comment down on my reply.
Reinstall either from microsoft store or from
https://code.visualstudio.com/download

Sending zip files and keeping file paths consistent

I have created a GUI and Database for my company. I am trying to alpha test the program. I made the program so that everyone would place it on their C drive so that the file paths would stay consistent. When I email the zip folder to everyone it adds an extra folder that is causing errors to the file path (I believe the error occurs during extraction?). Does anyone know a good way to prevent this from happening? Thanks!
Although "xcopy deployment" is a valid method to deploy programs, it can come with complications, as you have discovered. Instead, you can create an actual installer program which is much more versatile.
For a lead-in on making an installer you can read Create MSI installer in Visual Studio 2017.
Make sure that the program uses locations as given in the Environment.SpecialFolder Enumeration so that it is automatically adapted for any (properly-configured) Windows installation.
Other installers are available, e.g. Inno Setup, which may offer simpler or more detailed configuration of some options like replacing or keeping older files, or installing prerequisites like a required framework version.

Checking installation integrity with installshield

For Linux packages, specifically RPMs with stored checksums, we always can check two things: the contents of package is ok and the installation from this package is ok. When someone modifies parts of the installation he shouldn't, we can see it by running rpm -Vp my-precious-package. In our busyness it is not only recommended, but obligatory to provide our packages with tools for this purpose and for Linux these are just simple bash scripts.
Now I have to do something similar for Windows. Basically what I want is to provide some batch file by running which one can get assured, the installation is the same as it meant to be in the package. I'm using InstallShield for packaging, and yet it has some great visual tools, I still haven't found a way to verify package checksums in the command line.
Is it even possible, or should I reinvent the wheel writing my own checking utils?
Take a look at MakeCat and SignTool from Microsoft, both in SDK
http://msdn.microsoft.com/en-us/library/windows/desktop/aa386967%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/aa387764%28v=vs.85%29.aspx
Windows Installer has a feature called resiliency that supports auto repair of products and there are ways to call it for self checks only. (This is assuming by InstallShield you mean Windows Installer based projects.)
Here's a couple links to read to get you started:
INFO: Description of Resiliency in Windows Installer
Resiliency
Application Resiliency: Unlock the Hidden Features of Windows Installer
MsiProvideComponent function (See dwInstallMode flags)
This also assumes all files are key files. Companion files are not managed by the installer. Also changes performed by custom actions outside of the installer aren't managed.

Inno Setup installer package supplied file list

I've got a "Project" containing a mixed set of files that my application compiles into an installable using InnoSetup. Many of the project files are system or configuration files, and not relevant to the actual install. Therefore, i want to include only the relevant files in an installer. I have a list of them in my application, but no way to inject this information into the template Inno setup script.
What options are available to achieve this?
Regards
Tris
Note: The files are too big to really be copied in a reasonable length of time. :)
sorry for being so late...and then just asking the obvious: why can't you just keep irrelevant files out of the Inno-Script? Do I understand right: you have an app that generates a setup-script for InnoSetup based on a template? Can't you then modify the app? Alternatively, any chance to edit the ISS and remove the irrelevant files?
Cheers
Michael

Inno setup: hide files

How can I hide the files while installing my application using an Inno Setup made package? It can be hidden by
"[files]
attribs : hidden"
but it again can be seen by activating the windows option
"Show hidden file"
How can I hide it permanently to avoid user tampering with EXE file?
Can't be done. If you nee a detailed explanation why, see this blog post:
http://blogs.msdn.com/oldnewthing/archive/2005/04/19/409620.aspx
If you are really ambitious and you really have an issue with people "tampering" with your exe files you can perhaps encrypt your exe files, play with the PE (portable executable) and loader, or other stuff.
I doubt any of that is worth it. EXEs have been distributed by many software companies over the years. Your application is probably not that special to warrant anything out of the ordinary.
Set those flags, and concentrate on more important issues.

Resources