How to create ProgramData folder with InstallShield? - installshield

Using InstallShield LE with Visual Studio 2013, dev and target machines are Windows 7.
How do I create a folder under ProgramData and place a file in it? I have a text configuration file that I need to put there so the user can edit it as needed.
[I know this isn't a forum for ranting, so use your imagination to insert some nasty non-family-friendly comments about InstallShield here.]

InstallShield is a Windows Installer authoring tool. InstallShield rants aside, let's talk about the Windows Installer pain of what you are trying to do.
Installing per-user components is a pain. It requires a repair in each user context to populate the file. It's very ugly and has issues such as source resolution.
There is an easier way. Install a "seed" of the file in [ProgramFiles]Company\Product or [CommmonAppData]Company\Product and when the user runs your program copy the file to the users ProgramData if it does not exist.
This way you keep it simple for the installer, only add a few lines of code to your startup and don't have to worry about MSI trying to "fix" the user config file when the user edits the content because the installer doesn't know anything about it.
Easy, heh? Application design and Installer design have to go hand in hand.

Related

Error installing tizen studio on windows 10

No matter which of the three tizen studio 2.0 installers I try they all don't work as they won't accept any path. The CLI installer gives the most detailed description:
** The directory you specify is not allowed to install the Tizen Studio. Some tools of the Tizen Studio will not properly work in the directory with administrator privilege or read-only access rights for your account.=> path
I have tried starting the installer with admin rights and owning the destination folders. Additionally, I switched from JDK 9 to 8.
Still, there seems no way to get the installer running. Any ideas what the reason could be? Thanks!
I managed to install tizen studio and the SDK using the %appdata% path.
If anyone else has the problem, try e.g.
C:\Users\YourName\AppData\Roaming\Samsung\tizen-studio
This is definitely a flaw Samsung should take care of!
I've successfully installed the IDE version with the following method:
Download Tizen Studio Web IDE installer
Open installer with 7-zip archive manager
You should find tizen-sdk.zip archive
Open it and extract it into the C:\tizen-studio folder
Create C:\tizen-studio-data folder
Create sdk.info file inside C:\tizen-studio folder
Put following lines into this file
TIZEN_SDK_INSTALLED_PATH=C:\tizen-studio
TIZEN_SDK_DATA_PATH=C:\tizen-studio-data
You can download packages with C:\tizen-studio\package-manager\package-manager.exe
You can start IDE from C:\tizen-studio\ide\TizenStudio.exe
This worked for me, hope this helps...
#Henry was almost correct and his scenario works on CLI/IDE installers.
And here are actual restrictions on Win10x64 tizen-studio 2.0 installation I've found:
pointed SDK location needs to be in your user directory. For example:
C:\Users\MrSmith\Tizen\tizen-studio
Data location could be anywhere, but in case of CLI installation, it will be near SDK folder.
CLI installation actually does unzip only and all further system configuration needs to be done manually. So, if you need only CLI, you could unzip "web-cli_Tizen_Studio_2.0_windows-64.exe" with 7zip or any other proper archiver where you want and do further manual configuration. (See here https://developer.tizen.org/development/tizen-studio/web-tools/cli)
Probably, if you login under Administrator you will be able to install SDK anywhere. Just "Run as administrator" doesn't work, at least for me.
My system params:
Win10 Pro x64
Oracle JDK 1.8.0_152
Have a fan ;)
I solved this problem that way:
create folder (eg Tizen_Studio)
inside created folder create new (tizen_studio and tizen_studio_data)
add all permissions for that folders for your windows account user
select folders in installation proccess
Enjoy!
The regular way which Samsung provides is working for me:
Make sure you have enough disk space (Tizen Studio needs about 700 MB
on Win10)
Create an empty folder with 2 empty subfolders (e.g. Tizen_IDE->studio (subfolder #1) -> data (subfolder #2)
The important part on Windows 10 is to navigate to YOUR users directory:
For example your user name is Bob. Go to C:\ -> Users -> Bob.
Then create there the empty folder "Tizen_Studio" with the 2 mentioned subfolders.
Check with right-clicking on the Tizen_Studio folder -> Properties -> Security if your Username (here Bob) is listed in groups and users. Click on your profile there in the security tab and look if the folder has full access rights inside the checkboxes (btw this should be automatically set if you choose the right described environment).
Now in the installer dialog you can choose the studio folder for the ide/sdk and the data folder for the installing data request path.
Thats it! Just important to install it inside your username folder!
I had this problem as well (on my Windows 8.1 machine), and ended up using the previous version of Tizen Studio Installer (version 1.3)
https://download.tizen.org/sdk/Installer/tizen-studio_1.3/
It even does not work for me in %APP_DATA% and also not running the installer with Administrative privileges.
But I finally found a solution which worked for me:
Create a new and folder somewhere
disable all inherit privileges on this folder
grant explicit all privileges for your users to this folder
remove all other privileges, especially these for Administrator
Use this folder for Installation
Write useful sofware for tizen ;-)
How bout removing 32 bit Java client and installing 64 bit on win 10?
Worked for me, no one seemed to notice that Installer opened in 7zip has an installer.jar which needs to be run with java client.
Thanks for the advises on opening installer with 7zip.

Creating Content Project on Monogame

I am trying to use Monogame for the first time.
I found creating a content project is impossible on Visual Studio 2012,
so I would like to know if I can create some .xnb (contents) files from another PC and move it in my PC that Visual Studio 2012 is installed.
This is because I failed to install Windows Phone SDK in my PC for some reason.
My OS was Windows 7 so I could not install Windows Phone SDK.
So, is it possible to create a content project on another PC and move it into my PC? Or, can I copy the .xnb files to my PC?
Thanks in advance for your help.
You can create the xnb files from whichever system you want by using an XNA game project.
The steps to follow would be:
Create a new XNA Game project (it needs to be a game and not a content project).
Add the assets you want to port into the content project of the game.
Compile.
Go to the output folder and copy all the xnb files.
In your monogame project, add the existing xnb files to the project's Content folder.
Change their properties to: "Content" for "Build Action" and "Copy if newer" for output directory.
You can find a tutorial (written by me) explaining exactly how to use sounds and spritefonts in Monogame here. This can be helpful given that these files need to be created from an external project as Monogame was not able to used them without being in xnb format; and was also unable to create this format for itself.
One last thing, it is also possible to install XNA in VS 2012/2013 and Windows 8/8.1 without any problem by using XNA Refresh. This may help you in avoiding the need to use another computer for this process.

InstallShield what to give to client

I used InstallShield to create an installer for my project.
It included the following files (deeply nested in a file directory):
program files (folder),0x0409.ini, setup.exe, Setup.ini, applicationName.msi
Am I supposed to provide all these to the client and have him click the setup.exe button? or is there a nicer (easier) way to make it clear what the client needs to click?
I know you can just have the applicationName.msi, but why did they create a setup.exe program then?
Installshield creates a setup.exe if you have your project's Release configured to create one. Choose "no" under Releases | Setup.exe tab | Setup Launcher. Those other files you mention should not be needed by the client.

How do I create an InstallShield LE project to install a windows service?

I downloaded Visual Studio 2012 yesterday when it was released on MSDN. I have noticed that a few of the project types that we had in 2010 are gone or different. The biggest difference for me right now is the removal of the Windows Installer project. Now we are being forced to use the InstallShield LE (Limited Edition). The problem here is that I write a ton of Windows Services and I can't see how to setup InstallShield LE. It appears that we (my company) will have to invest in licenses for the professional edition.
Has anyone found a way to install services in InstallShield LE? When using the Windows Installer project, you just set the custom actions.
For Visual Studio 2012 & InstallShield LE, do the following:
Run through the InstallShield project assistant and add the primary output of your service to the Application files section.
After you are done with the project assistant, double click the "Files" item under step two of the setup project.
Right click on the primary output of your service, and go to properties.
Click the "COM and .NET Settings" tab, and place a check in the "Installer Class" checkbox.
Click Ok
Now, once you build and run your install, your service will show up in the Windows Services snap in.
Note that this assumes you added a "Project Installer" to your service project (Right click on the service design sheet and click "add installer"). I can confirm this work on Windows 8 with Visual Studio 2012 / InstallShield LE.
I've recently installed VS 2012 with Install Shield LE. At first I kept getting a ISEXP -5036 internal server error after a build (this was after setting up a ISLE project and running through the Install Shield Project Assistant). Eventually I found out that it was trying to create the MSI in the DVD-5 media type which is where it was failing. For some reason, creating the solution again from scratch somehow recognizes to only build to the CD_ROM and SingleImage media types which works.
Anyway to rectify the 5036 error, click the Build tab in VS 2012 (top menu), select configuration manager and you should see that your IS setup file is selected on the DVD-5 configuration. Change this to CD_ROM and click close. Once you build/rebuild it will complete with no IS 5036 error.
While using the installer class checkbox may work for some instances, you may experience the following error:
Error 1001.The specified service already exists
Here is an excerpt from this link on how to resolve this issue:
For Error: Error 1001.The specified service already exists
This error will occur if the component installing a .NET Service is
incorrectly configured with ".NET Installer Class" set to Yes. The
method to install a .NET Service is to use Component\Advanced
Settings\Services view, not the ".NET Installer Class" setting.
Making definitions in the Component\Advanced Settings\Services view
creates entries in the Windows Installer ServiceControl and
ServiceInstall Tables. These entries are used by the Windows
Installer "InstallServices" action to install the Service.
If your project is .NET, then try then you can use the ServiceProcessInstaller class with InstallShield LE.
To get it to work with InstallShield, you have to go into the InstallShield "files" tree and right click on your file. Then check the checkbox for "Installer class" on the "COM and .NET settings" tab.
I have gotten it to work, but I've had problems on some OS's like Windows 2008R2. Your mileage may vary.
Here is an example: http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C
I had all sorts of problems with this.
As follows.
InstallShield takes ages to download
the registration process is a pain.
the configuration options are confusing and overly complex.
the accepted solution on this thread is a hack and it doesn't always work - see 1001 in the documentation - essentially you need to get through the paywall to get the right configuration options to install a windows service.
Solution for me as mentioned elsewhere - was to abandon InstallShield
Very easy from that point.
Edit: Update - install the latest version from here https://wix.codeplex.com/releases/view/115492 for vs 2013 / 2015
Visual Studio setup projects are back in VS 2013 as a visual studio extension.
https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d
Please update your solution and projects to VS 2013. If you are still in VS 2010, you are probably better off by upgrading directly to VS 2013.
My experience with Installsheild LE is that it is very quirky but once you figure out the tricks, it is easier to use. However, I think that the limited edition is a way by Microsoft and Flexera to sell the fully featured edition. In other words, first we pay Microsoft a lot of money for Visual Studio and then their partner (in crime) more for Installsheild. Bad strategy which did not work out since they had to bring back the setup projects in VS 2013.
I've written about this subject:
Augmenting InstallShield using Windows Installer XML - Windows Services
Basically you create a merge module using WiX to encapsulate the service and then add it to your installshield project. ( Be sure to associate to the INSTALLDIR directory to make sure your file goes where you expect ). Build and test on a VM. Piece of cake.
I'm using VS2012 and Installshield LE Spring Edition. I did not have to use Wix.
If you encounter the error "Could not create _isconfig.xml for use with InstallUtilLib.dll", please create a folder with the same name as your setup project and inside the setup project folder.
Credits to http://community.flexerasoftware.com/showthread.php?165929-Could-not-create-_isconfig-xml-for-use-with-InstallUtilLib-dll
I just got some problems finding where to add installer as referred in the answer. So here it is how.
Double click on your service class within your Windows service Project
A blank screen with the text "To add components to your class, drag them from the Toolbox and use the Properties window to set their properties..."
Right click anywhere but on the links and select "Add Installer"
see ya
Bear in mind that all the above explanation will not help you if you plan to create later an upgrade of that setup. InstallShiled LE can't stop the running service when you upgrade. You can't do it either from Window Service Installer -> BeforeInstall event.
Wanted to put this here;
On VS 2015, when doing this, I ran into the 1001 error upon installation repeatedly.
Answer on this page explained that on the newer versions (anything past 2012), apparently you need to explicitly leave the installer class option unchecked, and then add your windows service under the Services section under Step 3 of the installer project:
Error 1001 when installing custom Windows Service

Adding Prerequisites using InstallShield 2010

I am very new to Installshield 2010. I have created a basic MSI setup for my application.
I need to check a few prerequisites for my application those are as below.
Microsoft frame work 3.5 with SP1.
Sql Express 2005.
Visual C++ redistributable
If any of the above things are not installed before means, I have to install while installing my application.
Can anyone guide me How I can install all these prerequisites before I installing my application?
Take a look at "Setup Prerequisites" and "Feature Prerequistes" They are the same except that the former are installed by setupe.exe before calling your MSI and the latter are installed by setup.exe (conditionally) after your feature selection and prior to the execution of the execute sequence in your msi.
If you go for the former, you probably also want to author AppSearch/System Search and Launch Conditions to block your MSI in case the user doesn't enter through the setup.exe.
InstallShield has predefined prereqs ( .PRQ's ) for each of those although I will caution you to atleast use SQL 2005 SP3 as there is a nasty bug in SP2 that can blue screen an XP machine. I'd actually really consider going with SQL 2008 R2.
Also found more info here in this page: http://kb.flexerasoftware.com/doc/Helpnet/InstallShield2011/IHelpSetPrereqCustom.htm
This one took me quite a while to find, hopefully I'll save you some time.
If you just want to force your user to have some applications installed (e.g. 'Visual C++ redistributable') or some specific configuration (e.g. specific Windows version/ reg value etc.)
You can use 'Behavior and Logic -> System Search' add the search for what you need (file/folders/registry entries/ini files values/XML file values),
On "What do you want to do with the value?" dialog select Store the values in the property and use the property in an Install Condition".
This will cause the Search to be executed when your installation package starts and will display an error popup to the user saying what ever message you've entered for the condition.
Few notes:
- If you're looking for a x64bit registry entry - mark the "Search the 64-bit portion of the Registry" check box.
- Did not find a way to edit the Condition once created, when tried to edit it it just lets me see and change the search parameters, but for the condition it only allows to enter it from scratch; as a workaround you can save the project as XML file (Installation Information -> General Information -> Project File Format) and edit the XML externally.
Good luck.

Resources