Installer for ASP.NET project - c#

I have an ASP.NET project in VS2012. I'd like to publish an "offline" version of this site.
I'd like the installer, to:
Enable (or install) the IIS on Windows (if necessary)
Install the MS SQLExpress (if necessary)
Install the .NET (if necessary)
Install the project's files, and start the site on localhost.
Can you help me, how to start?

MSI packages (digitally signed) are the standard way of deploying Windows applications. You can use a tool like Advanced Installer, such tools offer predefined support to install Windows Features, prerequisites (SQLExpress or .NET Framework), install IIS web apps and of course copy your files and create the corresponding folders structure.
This application has a free edition, but for what you need you have to purchase a Pro license. It also has a full 30 days trial.
(disclaimer: I work on it)

If not going with #SLaks suggestion, you have to create either a script (powershell) or a installation package to setup all the components in your solution. There a a bunch of installation packages around (Wikipedia

Related

Installer for .net core 3 wpf/winforms (non MSIX)?

So, we finished a few wpf conversions to .net core, and now we have a need to ship one to an external client as an installer. Previously we used ClickOnce, but that has been deprecated in .net core and will not be ported according to MS, with them recommending MSIX. However, as we understood from docs, even though we'll sideload a WPF application it will still run in a sandbox with a virtualized file system. And that is a no go for us, it has obviously been designed with UWP+Marketplace delivery in mind. We need the application on the file system with full access to file system, the "good old way".
We could just ship them as a zip file and have the client unpack, but management deemed that as not-so-professional, so we need a delivery package similar to what msi/clickonce had. Has anyone delivered apps on core outside MSIX?
EDIT: Microsoft has announced they are going to include ClickOnce support in .NET 5
You can deploy .NET Core and .NET 5 applications internally in an organization by sideloading msix packages.
I have been successfully using Clickonce for deploying .NET line of business applications for years.
Now that I’m updating my apps to .NET Core I wanted something similar to Clickonce. In other words: publishing your installer in a network share and deploying your autoupdating app to your clients by simply coping a shortcut to your installer.
You can achieve this with msix packages. The problem is that you are limited to Windows 10 version 1709, and later
The solution came on December 19th with MSIX Core 1.1. Packaging your app with msix core support you can target Windows 7 SP1 and later, and this is something I needed because at work we are slowly transitioning to Windows 10 from Windows 7 and I still have to support old versions of windows.
The steps for packaging your .net core app using msix core are:
Create a Windows application packaging project in your solution.
Right click on the Applications subfolder of your Windows application packaging project and select Add Reference. Then select your target project.
Change your Package.manifest (reference: msix-packaging/MsixCore at master · microsoft/msix-packaging · GitHub) Right click your Package.manifest file and select View code Change your to:
<Dependencies>
<TargetDeviceFamily Name="MSIXCore.Desktop" MinVersion="6.1.7601.0" MaxVersionTested="10.0.10240.0" />
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.16299.0" MaxVersionTested="10.0.18362.0" />
</Dependencies>
With this you stablish your min version to MSIXCore.Desktop in other words Windows 7 sp1.
Right click your Windows application packaging project and select Publish then Create App Packages.
Choose Sideloading then check Enable automatic updates.
In order to install the package in the client machine you must sign it. I recommend you to create a self-signed certificate. You must install the certificate in the client machine so that the package is trusted and you can install it. If you are in a domain you can deploy your self-signed certificate with a group policy.
The optimal situation is to sign the package with a trusted certificate provided by a trusted root certification authority. My personal choice is to create a certificate in my own windows certification authority (which is trusted in my local domain). If you decide to sign your package with a trusted cert this is the command line:
.\SignTool.exe sign /fd SHA256 /a /f yourcert.pfx /p yourpassword *.appx
Select Generate app bundle to Never.
Select your network share for publishing the package
In order to execute your package installer in Windows 7 sp1 machines you must previously install msixmgrSetup-1.1.0.0-x64.msi or msixmgrSetup-1.1.0.0-x86.msi accordingly. You can find the installer here
Windows 10 machines will recognize the installer right away.
If you want to know more about msix packages you have a good explanation here
I hope this guide helps you to get your deployment system working.
Well, apparently, we are again faced with "our way or the highway" from MS, so we just used Inno Setup. Until such time we get a proper installation process or MSIX allows unsandboxed setup without unnecessary file system abstraction, this will have to do.
There are other tools such as Advanced Installer or InstallShield that can create a MSI/EXE installer now and later in case you decide to go with the MSIX, you will just add a new build to your current project.
The tool will automatically sync the content of the MSI with the MSIX, or at least this is what Advanced Installer does for you.
They also have a VS Extension, so you can build the installer inside your Visual Studio IDE.

ASP.NET application deployment requirements

I am in the middle of developing my first C# ASP.NET (v 4.5.2) Web API, and until now i have been only using Visual Studio 2015 Professional, with IIS Express 10 for debugging.
I have no previous experience with IIS or ASP.NET deployment in general.
So my questions :
When i publish my application and try to deploy it on the production IIS (which will probably be IIS v.8), am i going to need any .Net frameworks or any other packages manually installed on the server? What about any Nuget packages i use? Does the publishing process wrap all the needed files?
Which version of IIS am i going to need in order for my
application to work?
Are there any other considerations to ensure that an ASP.NET app will be
deployed successfully on a production environment? Like if i use MVC
or Entity Framework do i need to install those manually on the
server?
EDIT : Forgot about Crystal Reports! I suppose this has to be manually installed on the server right?
1.
if you take a new version of IIS you should not have to install .net frameworks. If the target framework does not exist on that server, you have to install it and register for iis : https://msdn.microsoft.com/de-de/library/k6h9cz8h(v=vs.100).aspx
The nuget packages won't be a problem because Vs will deploy all dlls too (like on express)
If you are using some special things like Url-Rewrite you have to install these modules manually (e.g. for url-rewrite https://www.iis.net/downloads/microsoft/url-rewrite)
2.
About the version, if you want to do it easy, just use the newest. But it depends on which server-version do you use, even though most applications work on older IIS too. Maybe some changes in the web.config have to be made if you are using some kind of "special" configurations
3.
For deployment you have several options:
Webdeploy (https://www.iis.net/learn/install/installing-publishing-technologies/installing-and-configuring-web-deploy-on-iis-80-or-later)
Deployment over FTP/Fileshare - create on IIS an Application - ensure that the right .net framework is selected - create fileshare or ftp - then deploy it into the directory, which is app-directory

Which files to select for installing an old versions of the Azure SDK for .Net

Downloading a current version of the Azure SDK for .Net is easy to do via the Web Platform Installer tool.
The thing is that it only has the latest 2 versions or so.
If I want to download an older version, Microsoft points me to the following download site. When clicking download, I'm confronted with a dialog asking me to select which of 20(!) different files I would like to install.
Of course none of these files have any descriptions, so I'm left to deduce stuff from the file names.
here's the list of all the files i'm seeing for SDK version 2.5
EnvironmentTools.VS.msi
HiveODBC32.msi
HiveODBC64.msi
Microsoft.Azure.HDInsightToolsForVS2012.msi
Microsoft.Azure.HDInsightToolsForVS2013.msi
Microsoft.Azure.HDInsightToolsForVS2015.msi
MicrosoftAzureAuthoringTools-x64.msi
MicrosoftAzureAuthoringTools-x86.msi
MicrosoftAzureComputeEmulator-x64.exe
MicrosoftAzureComputeEmulator-x86.exe
MicrosoftAzureLibsForNet-x64.msi
MicrosoftAzureLibsForNet-x86.msi
MicrosoftAzureQuickstarts.msi
MicrosoftAzureStorageTools.msi
MicrosoftAzureTools.VS110.exe
MicrosoftAzureTools.VS120.exe
MicrosoftAzureTools.VS140.exe
WebToolsExtensionsVS2013.msi
WebToolsExtensionsVWD2013.msi
WindowsAzureStorageEmulator.msi
IS there a way to install older SDKs with a single installation (like Web Platform installer)
if not, What is the minimal set of programs i need to run in order to successfully build and deploy Azure cloud services? (i don't even need to run it on local emulator). Assuming I have 64 bit machine and VS2013.
For me (on x64 machine and VS2013 install) these are the minimal set of programs i needed to install in order for my build to pass:
MicrosoftAzureAuthoringTools-x64.msi
MicrosoftAzureLibsForNet-x64.msi
MicrosoftAzureTools.VS140.exe (for VS2015) or;
MicrosoftAzureTools.VS120.exe (for VS2013)

How to create a install/uninstall/repair .exe in windows application?

I am new to windows application.Created a tool in windows application and with the help of setup build a exe and install it.
If i try to install when it is already installed its showing another version is already install so i have to go to control pannel uninstall it then install it again .
How can i do it in that way
When not install - Install it
When installed - Uninstall it then install the new version.
When you made a working software, next step is called distributing. Which mostly means putting all your software files into a distribute package. For this you have to choose distribute system (my favorite is NSIS).
It is the job of installer to detect whenever software is already installed and offer Repair or Uninstall option. And it should be very basic thing supported by distribute system (read - it will be very easy to do).

install ef 5 on server

I develop a web application on Microsoft .Net 4 and Entity Framework 5. When I upload the project on my web farm it doesn't work. I believe that Entity Framework is not installed on my web farm. So I contacted my host to support this particular issue.
They said:
Send us a download and installation instructions, with any
requirements to install Entity Framework.
Except we utilize a link from directly within Visual Studio through Nuget.
How do you load the proper deployment information onto a server, since you can't directly deploy with Nuget since they don't have Visual Studio installed?
Server Information:
Windows Server 2008 R2 64 Bit
Nuget link I used to install Entity Framework.
If possible please guide me or reference a place where I can solve this deployment issue. Any help would be greatly appreciated. Thank you for your assistance.
In order to successfully launch your project on a deployment server you should ensure that your application has a Deployment Package to be installed on the server.
Deployment Considerations can be found here:
You have a lot of things you need to consider, but Entity Framework does have a lot of choices and flexibility. Some of your choices:
Click Once Security and Deployment
Windows Installer Deployment
What Is a ClickOnce Application?
A ClickOnce application is any Windows Presentation Foundation
(.xbap), Windows Forms (.exe), console application (.exe), or Office
solution (.dll) published using ClickOnce technology. You can publish
a ClickOnce application in three different ways: from a Web page, from
a network file share, or from media such as a CD-ROM. A ClickOnce
application can be installed on an end user's computer and run locally
even when the computer is offline, or it can be run in an online-only
mode without permanently installing anything on the end user's
computer. For more information, see Choosing a ClickOnce Deployment
Strategy.
ClickOnce applications can be self-updating; they can check for newer
versions as they become available and automatically replace any
updated files. The developer can specify the update behavior; a
network administrator can also control update strategies, for example,
marking an update as mandatory. Updates can also be rolled back to an
earlier version by the end user or by an administrator. For more
information, see Choosing a ClickOnce Update Strategy.
Because ClickOnce applications are isolated, installing or running a
ClickOnce application cannot break existing applications. ClickOnce
applications are self-contained; each ClickOnce application is
installed to and run from a secure per-user, per-application cache.
ClickOnce applications run in the Internet or Intranet security zones.
If necessary, the application can request elevated security
permissions. For more information, see Securing ClickOnce
Applications.
How does a Windows Installer Deployment work?
Windows Installer
deployment enables you to create installer packages to be distributed
to users; the user runs the setup file and steps through a wizard to
install the application. This is accomplished by adding a Setup
project to your solution. When built, the project creates a setup file
that you distribute to users; the user runs the setup file and steps
through a wizard to install the application.
That is a brief description of a few ways, you can find examples here: Once you actually have your host load your deployment package it should run without any issues. Hopefully this points you in the correct direction.

Categories

Resources