How to detect if .net framework is installed or not in the target machine by Installshield?
If it is already installed how to find the installed version of .net framework?
Can anyone please help.
installshield
stallaton designer
system search
chose: file path,specifie by registry entry
registry root: HKEY_LOCAL_MACHINE
registry key: \SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL
next
IS_SQLSERVER_SERVER
choise Addition Option .
InstallShield has a series of predefined searches. You should be aware that multiple versions of the .NET framework can run side by side ( 1.0, 1.1, 2.0-3.5 and 4.0 )
Related
Whenever i try to run/debug an Azure Function project in Visual Studio 2017 i get an error stating that i need .Net Framework 4.7.1 (which i can't install due to have preinstalled windows 10 Enterprise in my working machine by company policy),I'm using Azure Functions and Web Tools Extension version 15.0.40608.0, anyone can help me with a workaround on this matter ?
If you got exactly this error message
The reference assemblies for framework ".NETFramework,Version=v4.7.1" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. ...
You can try to change your target framework to a version you have installed, like the error suggests.
Right click on your project, Edit FunctionProjectName.csproj, find <TargetFramework>net471</TargetFramework>, change it to the version installed, like net461.
If you can't run this project correctly on lower version of .Net Framework, as rickvdbosch says, it might be required to update your Windows and install the SDK or modify your code to make it compatible on lower version.
When I was looking at the Conditions for installing the 4.6.2 .NET Framework I see this
Registry has value HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Release < 394806
Win 7/Win Server 2008 R2 (SP 1+)
Win 8/Win Server 2012
Win 8.1/Win Server 2012 R2
Win 10
This works great if the user uses windows update regularly and he/she has a 4.0+ .NET framework installed.
But if a Windows 7 user never updates his/her .NET framework then the default one would be .NET 3.5
And HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\ would not exist. The first condition fails and InstallShield would not attempt to install .NET 4.6.2 on user's machine.
Seems like there is no way to use Or group for prerequisite condition. How can I make sure
.NET 4.6.2 is automatically installed for users with 4.6.2 below
.NET 4.6.2. will NOT get installed for users with 4.6.2 above
Based on the answer provided by flexerasoftware it is not possible to do in basic MSI project.
I was able to get it working by using a Advanced UI Suite project and added .NET framework 4.6.2 as a dependency package.
In the Detection condition section config it using a custom Or logic to check whether 4.6.2 should be installed
I am stuck on creating azure batch pool with .net 4.6.1.
I went through those very good resources:
Compute Node - Install .NET 4.6.1
How to get the Windows 2016 Preview OS
and I found out that there is a way to use .net 4.6.1 without installing it manually on a node. There is a programmatic way to set up Windows Ghost image with the latest .net version which is .net 4.6.1 but my node is defined in advance.
I need to have .net 4.6.1 because we use Data Factory and custom activities which are run on azure batch nodes. We upgraded .net version manually on that node but Microsoft doesn't guarantee that the state will preserve and we noticed a few times that node was reset to its original state.
My questions are:
do you know if there is any way on azure portal to choose OS family set to Windows Server 2016 with installed .net 4.6.1 version already?
does anybody know when there will be any os with .net 4.6.1 available?
or should I go with StartTask feature and try to install .net 4.6.1 manually? However, that option sounds like some workaround and not the correct solution.
There is not. They have said that when server 2016 releases on azure, it will be available on batch. Until then, the 4.6.1 install as a startup task is your only option. They also will, at some point, allow us to use custom images, rather than their pre-made images.
Updated 2016-02-07:
You can now deploy OS Family 5 under Cloud Services Configuration in Azure Batch, which is equivalent to Windows Server 2016 (as Marketplace/VM image).
Previous answer:
Answers to your questions:
do you know if there is any way on azure portal to choose OS family set to Windows Server 2016 with installed .net 4.6.1 version already?
Yes, you can change the "Image Type" to Marketplace and select 2016-Datacenter which is Windows Server 2016.
does anybody know when there will be any os with .net 4.6.1 available?
As per above, it's available now for Marketplace (IaaS) under 2016-Datacenter. The Batch team is currently working to support OS Family 5 as a guest OS for Cloud Services.
or should I go with StartTask feature and try to install .net 4.6.1 manually? However, that option sounds like some workaround and not the correct solution.
You can always install it as part of a start task and is considered the proper solution for Azure Batch proper for compute nodes with Windows Server < 2016.
You will still have to use the StartTask to install .NET 4.6.1. In the first resource you mentioned, there's a small piece of code that checks the current .NET installation and installs+reboots if needed.
If possible, downgrade your application's .NET version to 4.5.2 to save the hassle of restarting the node.
I want to implement windows desktop form application having no dependencies to install (e.g. framework, third-party etc).
In which technology I can achieve this?
Can i achieve this goal in C# Win-forms?
You can build an MFC app that requires no installation (just copying the files to the target computer) by statically linking and/or deploying the Visual C++ runtime redist side-by-side.
As Arnon has answered, you can build a .Net app that requires no installation if you target a version of .Net that is pre-installed on your target operating system. This blog entry lists the .Net versions included with each version of Windows.
what version of windows are you targeting your application to ? different versions of windows have different versions of .NET (see this link for details).
So basically, if you are looking for no installation you'd have to shoot for the lowest common denominator and/or ship multiple versions of your app.
I understand that it isn't what you want but -If you do go with .NET it is usually better to ensure that the installer will install the right version of .NET if needed (see this link for example)
i am going to make setup file with installshield 2010.(my program is written .net frame work 4). according to installation requirement in install shield, i mark microsoft .net framework 4 full full and client package but after make set up when i want to set the setup file, there is error that "you must have .net framework 4 in your system".
i want to set the .net framework 4.0 during the installation in client computer, but i face with that error:you must have .net framework 4 in your system.
please help me
I realize that this is an old thread, but I came upon it while searching for an answer to the same question.
In my version of InstallShield 2010 Professional, the .Net 4.0 redistributable was not available and, as 2010 is no longer supported, you could not get it from the redistributable downloader in the Tools menu. There is a InstallShield 2010 Expansion Pack patch that can be downloaded and run which will include it.
I installed it and it worked fine for me.
Do you use Prerequisites in InstallShield?
If yes, please check if this prerequisite is downloaded to you local system.
You can see this here:
"Application Data->Prerequisites->Microsoft .NET Framework 4.0 Full" column Location
If it has value "Needs to be downloaded" do the right click and choose Download selected item...