I am completely new to Wix. I have been using Clickonce to create setup and want to try out Wix. In Clickonce, there is an option for adding an Installation Folder URL from where the setup.exe will install the files. What is the equivalent of this in Wix please, if at all it's possible? Have been checking through the documentation and tutorials but can't find anything that points towards that direction. Thanks.
Related
Previously I have been using this method to build msi's on our tfs-server. Now I have upgraded to wix 3.10 and I can no longer find a wix.targets file. I also cannot find any information pointing out why it has been removed.
Does anyone know if this approach has been deprecated, and if so, what is the preferred method to build on TFS?
Do I just need to change the wix 3.8 targets file?
edit:
I found a wix.ca.targets file in the SDK folder, but it does not seem to be quite the same. At least it does not work out of the box for me.
The current documentation is here: http://wixtoolset.org/documentation/manual/v3/msbuild/daily_builds.html.
Wix.targets ships with WiX v3.10. It's installed to C:\Program Files (x86)\MSBuild\Microsoft\WiX\v3.x (on a 64-bit system) and available in wix310-binaries.zip in the bin subdirectory.
I am a newbie in creating the setup projects and I have created a "myfirstSetup" project. Its working good, but it has a dependency or I should say a prerequisite to be installed before its installation. I want that prerequisite to be installed during my project installation.
Till now I have done following things :
1.) Added the prerequisite by going myfirstSetup Properties
2.) Select the prerequisite
3.) Check the Download Prerequisite from the same location as my application
The .exe that is being created is installing the prerequisite but the .msi is only installing my project.
any help will be appreciated thank you.
That's the way it works - the setup.exe installs prerequisites and then your MSI installs your project. There are many reasons for this. Is there an actual problem or do you just believe your MSI file should be able to install prerequisites like the .NET framework, SQL Express and so on?
I have completed my program and would like to send that program in its compiled state to other pc's.
I understand that in the Debug folder there is the programName.exe file, which when I open it on the PC I created it with - it opens.
But if I send that .exe file to other pc's, it crashes or simply doesnt run!
Is there a way for others to see and use my program without installing visual studio?
I have asked this question before on another programming website with not much help, this is the link that they showed me, which i then followed:
http://www.dreamincode.net/forums/topic/58021-deploying-a-c%23-application-visual-studio-setup-project/#-application-visual-studio-setup-project/
The installer installs the program, but there is no files with it to open!
Other machines won't need to have Visual Studio installed - but they will need the appropriate version of .NET, depending on what you built against. If you target the "client" profile, the .NET distribution is fairly small.
You could build a setup project which kicks off the .NET framework installation if necessary, but it's likely to be quite a lot of work - in many cases it's probably simpler just to tell people what they need to install first, particularly if this is for personal use or friends/family.
There are most likely other DLLs that your project is dependent on that do not get copied over when only transporting that .exe file. You COULD just copy those over as well.
However, the best practice is to add a new Project under Setup for a Installer. It should detect those dependencies. Then the other users will just have to run the setup.exe that gets created (but you have to include the other folders and files that get generated). Open up the File System Editor tab of the Installer project. Then inside the Application Folder, I right click on "Primary output from [Main Project] (Active)", then select "Create Shortcut to ..." and drop the Shortcut into the Program Files and User Desktop folders on the left.
For something simple, the other DLLs should be fine.
Create the MSI Installer project for your application.
Copy your project output as input of MSI Installer.
.Exe is depends on .msi file, so when you click the .exe must verify the msi file existed in same directory.
Verify the .Net framework and Installation 3.0 before run the .exe or .Msi file.
The easiest approach would be:
1: Right click on your Solution Explorer and add a new project. The new project would be a Setup project, which would be under Other Projects -> Setup and Deployment -> Visual Studio installer and then choose Setup Project from the right side.
2: Add all your bin folder files to Application folder and then build your solution.
3: It will create a file with .msi extension. You can distribute that to anyone you want and they wouldn't need any VS.
i have a project that also need to install other msi's files to be able to works my previous app, but i was wondering if my installer project could do all this thing in only one setup file, it is possible?
From what I know, you can add merge module (msm) in the VS Setup project and not MSI files directly. You can check with msi provider if msm file is also available or not. In case msm files are not available, one of the work-around would be to include msi files in setup package and launch them using custom action. Obvious issue is that if child msi fails then you may not able to rollback entire thing cleanly.
Usually this is done through prerequisites. In Visual Studio you can add them through the project properties dialog.
This requires an EXE bootstrapper. So if you want a single setup file you can try finding a tool which can include everything in a bootstrapper. Most commercial setup authoring tools can do this.
I've created my first setup project using Visual Studio 2010. I've noticed that when I build the setup project it generates an MSI installer file and a setup.exe executable. However, I seem to be able to just right click on the MSI file and choose install to install my application rather than running setup.exe.
Does the setup.exe file that is generated do anything other than just fire up the MSI file? When distributing my application can I just provide the MSI file rather than the MSI file and the setup.exe file?
Kristopher Johnson is correct about the older machines, but it also does something else. When you are setting up the installer you can set dependencies and locations to download those dependencies. The Setup.exe does those dependency checks and launches the other MSI files in to install them. This is most often used to make sure Windows has the correct version of .NET or the C++ runtime installed.
If you do not have dependencies and you can guarantee .NET or the C++ runtime is installed then you do not need to distribute the setup.exe file.
Many (most?) users are accustomed to running the "SETUP" program to install something. That's why it's there. It's a good idea to provide it, unless you are certain that only technically knowledgeable users will be installing your application.
SETUP.EXE is also useful if somebody tries to install on an older version of Windows which doesn't have support for MSI files. In that case, it displays some sort of "You cannot install this program on this version of Windows" error message.
I believe (but could be mistaken) that it performs boot-strapping of the correct version of MSI.