I have been working on a project to create a Windows Form Application, using .NET 4.5, C#, and Entity Framework 6, in Visual Studio 2012. I was hoping to build a single EXE file to run the whole program, but I need the references to both DLLs for EntityFramework and EntityFramework.SqlServer.
I know that I could create an installation project and package the DLLs with the EXE, but for the company I work for that does not appear to be an option. I will more than likely have to find a way to install the DLLs separately so that they will be available when the EXE is sent to the users that need access to it.
Does anybody have any advise or experience on how you deployed your applications that required the use of the DLLs for EntityFramework and EntityFramework.SqlServer?
Related
From Prerequisites on the setup property pages, I selected the option to Download prerequisites from the component vendor's web site
There is no Windows Installer 4.5 in the prerequisites to install option..
because every im installing my setup using the sqlexpr_x64_ENU.exe in custom actions to install, run the setup after the extracting sqlserver it pops up the window says
There is a problem with this Windows Installer package. Aprogram run as part of the setup did not finnish as expected. Contact your support personnel or package vendor
im using VS2017 on windows 10
Exclude MSI Engine: You should not include Windows Installer 4.5 with any package these days. This runtime is from back in the day of Windows Vista - we are long since on version 5. Windows Installer should be deployed only via Windows Update as of today - in my opinion. Leave the runtime out of your setup.
No Concurrency: You can not run an MSI setup from within another MSI setup via a custom action. This is due to technical restrictions. There is a mutex set when an MSI runs its actual installation sequence, and triggering another installation sequence from within it will fail. A similar answer on the topic.
Setup.exe Launcher: What you need is to install your pre-requisites via a setup.exe launcher instead. This runs installations in serial, not in parallel. Which version of SQL Server are you installing? I see only a couple of versions available in the Visual Studio Installer Project launcher.
Other tools have features to allow you to install a setup.exe with embedded packages of various kinds in sequence. I have explained a myriad of times how to do this in previous answers. Here are just a few that I found quickly:
SQL Server named instance with Visual Studio 2017 Installer project (basically exactly the same issue - I suggest WiX the open source, free alternative)
Custom installer for application in Visual Studio 2017 (I suggest WiX and several commercial tools that are easier to use - maybe try to read this one)
Cannot call command.exe(SQL Server Setup.exe) while calling C# CA with parameters
How to create a MSI file which simply copies a directory to Program Files? (tools list)
Combine exe and msi file in one installer
Visual Studio 2017 Installer Project - include VC++ 2015 Redistributable
The general situation:
The problem is not Windows Installer 4.5, it's the fact that you are trying to do a recursive MSI install (the SQL one from inside yours) which is not allowed and will fail.
The MSI 4.5 engine is pretty much obsolete, about 10 years old, and anyway it's not the issue, and it's not clear why you believe it is. But it IS in the Prerequisite list on my VS 2017 setup project prerequisites - see 3 - even though you almost certainly don't need it.
There are some SQL Express options available in the Prerequisites of the VS setup project - right click the project in solution explorer and choose Properties, then Prerequisites.
Lately I have made a windows forms Project in VS 2010. Then I built it in VS 2005 Setup Project. Before installation my software requires .Net Framework to be installed. Most of my users don't want this, instead they just want to download the software and install, just like they download Skype, IM, etc.
I can add Framework in installation folder, but then it's size would be too large and that's inconvenient for users again.
Is there any way to build my Project, that will NOT require .Net Framework installation?
I have an existing project built in Visual Studio 2012 with VC++, which works fine on Windows 7 or higher versions. But when running on Windows XP, it gives an error that the application needs .NET framework v4.0 or higher to run. I am unable to install .NET Framework v4.0 on that system either.
So, the problem is that I want to downgrade my project's Target Framework Version, and I could not find any way to do it in Visual Studio 2012 - Windows Forms Application project.
Is there an alternate or better solution?
You must compile two applications, one for Windows 7 or higher and one for lower than Windows 7.
For changing your application .NET Framework follow the below address
[On Menu Bar]
Project -> "Your Application Name" Properties -> Application
And change
"Target Framework"
I have to create an project( windows Application on invoicing ) which also include Database (Sql server) .
Now i want to create an complete package for client machine .
This package includes the following :
.net framework required to run on Client machine
IIS
Sql server Database
Application itself.
if .net framework already installed on client machine it can skip installing.
Thanks !!
I think you should create installer for your application. VS2012 does not contain setup project, but if you use older version you may create this (setup project with custom actions). Also you may look at Wix or other third party installer.
I have a .NET WinForms application that I've converted into a COM dll using the Interop Forms Toolkit 2.1. Thet setup project for the application has both my tlb as well as the Microsoft.InteropFormTools.tlb file set to Register as vsdrpCOM. The prerequisites for the project are to ensure that Windows Installer 3.1, .NET Framework 3.5 SP1, and the Microsoft Interop Forms Redistributable Package 2.0a is installed.
When I run this locally on a Windows XP box with both Visual Studio 2010 and Visual Studio 6 installed, it works fine. However, on this Windows XP machine, I receive an error stating: "Class does not support Automation or does not support expected interface."
Any ideas?
I got it. For those of you that are running into the same, do the following:
Go into Visual Studio 2005, 2008, or 2010 (I used 2010) and build your Interop Form.
Then, go into Visual Basic 6. If your library is not already referrenced, reference the
library.
Build your VB6 executable.
Go back into Visual Studio (.NET version) and build only your installer. This way the installer and VB6 both have the same .tlb file
You're good to go. Thanks for the suggestion Kris!
You have RegAsm the assembly (see stackoverflow for more) on the machine you want to install the application on. The assembly should also be in the directory where the VB6 application runs, or installed in the GAC.