We have a business application which requires to use windows API libraries such as user32.dll etc. to take screenshots of the user desktop. This is currently built using C#.NET / VB.NET.
The business requirement now is to find a way to be able to execute/deploy the application to user machines with least user intervention. Additionally, the user might not have admin rights on his machine.
Please share any suggestions on the options. It would have been great to move the windows application into a web application, but I can only think of options such as ActiveX or Silverlight which might be able to user low level APIs, but these are already being discontinued.
ideal would have been some approach, where the user visits a website, maybe cliska button to install, and that website installs this windows application on the user machine.
The target environment is Windows 8. So I believe we may can assume that the .net framework would be existing already, BUT we do not know if in future perhaps the application in future might require any external referenced dll which might need to be pushed to the user machine.
If you use the standard clickonce application deployment that comes with Visual Studio, you can deploy the website to a website, and users can install form the webpage, installing any prerequisites for the program.
In addition, it installs to a user's appdata, so no admin rights are required. The only time admin rights are needed is when you install/update the .Net framework.
For bonus points, the clickonce deployment will automatically update the application on the client's PC when you publish new updates.
Related
At the moment I have written my own installer that copies files from resources or downloads them online
I know about things like wix, etc., but I have specific requirements:
Have only one window, the user selects (if he wants) the installation folder and a list of pre-installed plugins that the installer downloads from the application's plugin store.
This window has an interactive animation that uses a lightweight render engine
And as I said, it's completely ready, the application uses C# and does everything as it should, except that the installer requires administrator rights and falls under the radar of antiviruses
That's my question, how do I solve these problems? Do I need to request elevation to administrator, as well as somehow add the installer to the whitelist? Perhaps it needs to be signed somehow?
I have a project in c# VS2010 and I want to make .exe file and make a setup.Here I will make it with add setup and deployment project. But I have one more option of publish project.
I don't know
what is the meaning when I create the .exe with Publish project.
What is better and why & where I can use Publish project.
When To Use Click Once Deployment:
ClickOnce is a new deployment technology that Microsoft developed to
address several problems with deployment namely
Difficulty in providing regular updates The inability of
nonadministrative users to install applications
The dependence of multiple programs on shared components
Installation folder will be isolated storage
ClickOnce deals with
all of these problems and allows you to create a deployment strategy
that is easily updateable, isolated from other applications, and
installable by nonadministrative users.
When to use the Setup Project:
Although ClickOnce provides simple and easy deployment for a variety of applications, you
might need a more configurable environment for complex programs. Setup projects allow you to create highly confi gurable deployment plans.
Allows you to create the directories on the target computers
Windows Service installation
Registry Modifications during installation
Execute Custom Actions during installation
Copy files to target machine
Hope It Helps :)
I guess what you're talking about is ClickOnce technology. ClickOnce allows you to publish the application and all accompanying files to a location (for example a network share or a web site) and users can just install it by navigating there. You can even publish your application to a shared hosting provider and people can just install your application.
The application will then be installed in the user's profile.
The advantage of this is: You can publish updates easily if you configure your application to automatically check for updates - just publish the new version to the previous location. Every user will get the update upon the next start of the application. Users don't need admin rights to install your tool!
The drawback is: Every user (even on the same machine) will need to install the application in his own profile. There's no common installation for all users.
The advantage of creating setup projects is of course that you follow the traditional approach of installing an application on the system, making it available for all users. The drawback is that installing updates is far more difficult, and users need admin rights to install it!
I'm making an Windows Form application using C# 4.0 and Ubuntu PC will a host for ClickOnce Deployment. The users' Windows accounts are not admin accounts. Is there any way for the users to update the application without typing admin password If there are updates?
EDIT : Or is there anyway, when the application is installed on the user's machine initially, i register my application on Windows system saying that any updates from this application can be done without admin privilege?
Well it depends if the application requires any Elevated privileges. If the updates do not involve any registry changes or any system level DLL changes, There should not be any problem in updating the application.
if it requires elevated privileges then An administrator can advertise an application on a user's computer by assigning or publishing the Windows Installer package using application deployment and Group Policy. This way when the non-administrator user can install the application.
I develop a Windows Forms application using VS 2008. Application will be deployed in Corporate Environment: a network (VPN, LAN) is in several cities, many PC clients Windows XP; and there is a only Server Win2003, with several WCF Services, Windows Service, shared folders, and Database that use the WinForms app. Network is WORKGROUP, not domain.
The users in PC Clients has NOT admin rights. Only can install applications the only admin.
It is required automatized&easy way to install "desattended" the WinForms application for all users. I want get way to easy installations in PC Clients.
We don't want use ClickOnce. NOT use click once. Now, I have MSI (setup.exe) of WinForms App.
If if required another program, source code, scripting, etc, any sample code ??
any suggestions for my architecture network ??
Use XCOPY Deployment for more details.
Use InnoSetup and install the application to %LOCALAPPDATA%\MyApp, which is denoted as {localappdata}\MyApp in an ISS file.
Make sure your application uses Registry keys in HKEY_CURRENT_USER only. You can set these up using Root: HKLM
Set PrivilegesRequired to lowest.
Googling reveals many technical details and framework/OS prerequisites, but it seems to be hard to find a source that lists the permissions that are required for installing and running a ClickOnce application.
This is especially interesting for delivering software to customers that work in large corporate networks with many security restrictions and centralized policies that define which version of what is installed, etc. "Standard" users in these networks are still pretty much technically constrained in what they are allowed to do and what not (sadly, but that's another topic...).
What are the permissions that a user needs to start a ClickOnce application from the network?
Are there differences if the .NET Framework 3.5 is already installed? Does it work without an existing installation of the .NET Framework or an old version (for example, 1.1/2.0) with the same permissions as above?
To make it a little more specific, what permissions are required if the .NET Framework 3.5 is not installed yet? What permissions are required if the .NET Framework 3.5 is present?
A normal user can install every application deployed via ClickOnce. Sometimes, you need to be Administrator to install prerequisites (like the Framework), but not the application itselfs.
Because of ClickOnce application deployment model, be sure to use the correct paths when you write user data (access special folders via Environment.SpecialFolder enumeration).
For completeness, remember that every user of the machine must install the application (you can't install the application for "all users").
They need read-only access to the installation files, and domain user permissions on the local PC. Everything is written to the user profile and to the current user hive in the registry so nothing special is required here.
A user also has the permission to uninstall the application from Add/Remove Programs.
Rights can restrict these things of course. If a policy is in place to not allow users to open Add/Remove Programs then the user will have the permission to uninstall, but the user won't be able to get to the snap in to run it. Similarly, if you install from a UNC path, a user may have permissions to access the path, but a policy can be in place to stop a user from being able to browse network shares.