I have created a setup project in my application in order to include SQL compact 4 in the installation, as a prerequisite downloadable at the vendor's site (microsoft). I did everything thourg Visual Studio 2010 console (with SP1).
Now, when I try to install the package, the setup doesn't realize that SQL compact is installed. Why?
I don't want to use any other form of private deployment like copying the dlls and including them into my project. Thanks!
Most likely the prerequisite is not configured correctly. Try creating your own custom prerequisite.
Visual Studio setup projects do not support custom prerequisite creation. However, it can be done by manually generating the required manifests.
These manifests can be generated automatically with the Bootstrapper Manifest Generator tool.
After generating the package manifests, you can add all these files (including the package) in a separate folder in the Visual Studio prerequisites folder, for example:
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages
This way you can see your custom prerequisite when clicking Prerequisites button in your setup project properties page.
To detect SQL Server Compact 4 you can search for this registry entry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v4.0\ENU\DesktopRuntimeVersion
Related
I have some merge module projects created using advanced installer. I need to integrate them with visual studio. I have done same for MSI projects and they work fine. but I don't know how to achieve continuous integration for MSM using Visual Studio.
Advanced Installer extension for Microsoft Visual Studio allows to create Advanced Installer Projects for Visual Studio. Each such project is a container that can include a single .AIP file.
The Visual Studio Solution can include one or more Advanced Installer Project for Visual Studio, in accordance with your needs.
Note that you need to remove the default project that is created when adding a new Installer Project to the .sln and add the existing project, the project that builds the .msm package.
edit
Indeed, you are right. It was a misunderstanding on our end.
On my machine I have several extensions installed side by side. One of these extensions also supports the build of a merge module project type.
We do not officially support this yet. The option to build other project types (e.g. Merge Module Project, Updates Configuration Project) with our VS extension will be available in a future version of Advanced Installer. I will let you know when we will add support for this.
Until then, you can use a build event as a workaround to build the Merge Module Project within the Visual Studio project.
To build the .msm project you can use a command line as described below:
http://www.advancedinstaller.com/user-guide/command-line.html#build-project
The command line can be something as below:
AdvancedInstaller.com" /build "$(SolutionDir)Merge module sample.aip"
I am attempting to install a library DLL using a Visual Studio Setup Project in VS2010. The installer must install the DLL into the Target Application folder, as well as install the DLL into the appropriate folder for each instance of MS SQL Server Reporting Services installed.
i.e. if SQL 2008 reporting services is installed, then the DLL should additionally be installed to [ProgramFiles64Folder]\Microsoft SQL Server\MSRS10.MSSQLSERVER...\bin.
If SQL 2012 Reporting Services is also installed, then the DLL should also be installed to [ProgramFiles64Folder]\Microsoft SQL Server\MSRS10.MSSQLSERVER...\bin, etc.
I am trying to only install the DLL into the appropriate folder, if the corresponding version of SQL Server is installed on the system.
I have tried using the Registry Search, to look for the MSRS*.MSSQLSERVER key, but those keys aren't added to the Wow6432Node, and I couldn't find a way to get the installer to look only in the 64-bit node (built for Any CPU and x64--both ended up looking in the Wow6432Node).
I also tried using a File Search, but couldn't get this to work when looking for the existence of a directory rather than a file.
Is there any simple way to do this determination? To only install a file to a target folder if said target folder already exists?
Setup projects that generate MSI files (Windows Installer) don't do directory search, just file, registry, and installer component guid search. If you knew the installer component guids of representative files from those setups you could search for those with the Windows Installer search and have a property set that tells you whether they are installed or not.
According to the question Bundling only part of the prerequisites with ClickOnce a ClickOnce installer can either download ALL prerequisites from the web or expects ALL of the files locally. This seems to be the same for a Visual Studio 2008 deployment project.
As I would also prefer to include only selected prerequisites in an installer archive I was wondering if this is really still state of the art. Will upgrading to Visual Studio 2010 solve this issue or is there any workaround that I overlooked?
So here's an idea that I came up with.
Package the bootstrap installer with all prerequisites except the
.NET framework with "Download prerequisites from the component
vendor's web site" set
Create a small program (batch file or
executable) that is launched instead of the bootstrap installer which
does the following
Check if .NET framework is installed (the bootstrap package files tell you how to check this, e.g. .NET framework is installed if
HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5\1033\Install ==
1)
If yes execute setup.exe -homesite=false which configures the installer not to download any files
Execute setup.exe
Comments welcome!
You can package the prerequisite and set a download URL and put the prerequisite there. Then when the prerequisite is installed by the bootstrapper, it will download it from the URL instead of having to include it in the deployment package. This means, of course, that you have to set up your own bootstrapper package every time you want to do this, but it does work.
On Microsoft Visual Studio 2010 I would like to create a installer for a solution I created.
I created it by menu way (File > New project... > Other Project Types > Setup and Deployment > Visual Studio Installer > Setup Project), added files to their correct destinations etc., and all works fine, except for prerequisites...
The problem is that my solution depends on .Net 3.5 and I would like to install it automatically together with the installer, in some offline way - no internet downloads on installation time.
If on installer project properties I mark "create setup to install install prerequisite components" and mark "download prerequisites from the same location as my application"...
... when I try to run, it shows messages like that:
Error 7 The install location for prerequisites has not been set to 'component vendor's web site' and the file 'DotNetFX35SP1\dotNetFX20\aspnet.msp' in item '.NET Framework 3.5 SP1' can not be located on disk. See Help for more information. D:\Projetos\Eletronica\M013-Moura\HG-V6-release1\VidaCiclada-semTemperatura\VidaCiclada_Installer\VidaCiclada_Installer.vdproj VidaCiclada_Installer
Well, I put my offline installer of .Net 3.5 on the same folder EXE output of my solution is. What am I doing wrong?
Although I could not completely finished my installer package, I found the issue:
I clicked on properties panel
I clicked on the setup project
On property named "Localization", I changed the value to "English (United States)"
So I could build the project and execute the installer normally (except for SQL Server Express, that I would like to install with that package too, but although it is executed with setup, it does not create the Windows services for it...).
I.e., the issue was that my VS2010 doesn't have the files needed for the setup on my native language, "Portuguese (Brazil)", but it has for English language. The final setup will install prerequisites on English language...
I have a setup project that I need to install a redistributable that is not available in the default prerequisite list. Is it possible to add this redistributable to the bootstrapper that the setup project creates?
I figured out how to add Custom Prerequisites to the Visual Studio prerequisites dialog box.
MSDN as a good article on creating the prerequisite.
Basically you just have to create a product manifest and a package manifest, copy them along with your distributable file to : \Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages. Visual studio will automatically pick it up.
Take a look at Bootstrapper Manifest Generator tool (BMG) at http://code.msdn.microsoft.com/bmg
It is used for creating Bootstrapper packages and automatically adding them to Visual Studio's Prerequisites dialog box.
Edit: BMG can be downloaded from https://www.softpedia.com/get/Programming/Other-Programming-Files/Bootstrapper-Manifest-Generator.shtml now since the tool is deprecated apparently and is no longer located on Microsoft servers.
This can be solved by creating Custom bootstrapper package.Following link provides creation of it with a sample example
http://msdn.microsoft.com/en-us/library/ee726596.aspx