i have a problem with during application installation to client. My application is Microsoft office add-in. And then i try to deploy this application to the client i don't see this files on client side but software centre says that application was successfully installed.
Why it happen? I try to install another applications for example 7Zip.MSI, my own application .msi and anothers, all ok, but if i try to install Microsoft office add-in the files are somewhere disappeared. for script execute i used this command:
msiexec /i "WToysSetup.msi" /qb
i have already installed microsoft word on clients machine.
There are a number of possible issues here. I'm assuming you're using a Visual Studio setup project in the absence of a specific tool being mentioned.
The install requires elevation, but in a silent install Windows won't show the UAC elevation dialog, and it will run without elevation. Most installs like this would fail, but you might find that a Visual Studio generated MSI reverted to a Just me install, and installed the files to an unexpected location (often C:\ and not Program Files).
MSIs can be published or assigned with SCCM-type deployments, one is to the system the other to the user, and that's Everyone or Just me again, so it may have done a per user install because of that.
Regardless of whether it seems to have worked, if it requires elevation and fails then it may just fail silently, which would be one reason you can't find the files. You should be able to see in Programs&Features/Apps whether it is actually installed, but it was installed as a per user/Just me install you'd need to log on as that user to see it in the list of installed apps.
Related
I have been working on an outlook Addon using a visual studio VSTO project. When I run it as Debug or launch from within Visual studio Outlook (2016) launches and the addon works without an issue.
However, if I try to install it by navigating to the VSTO Deployment file and double click it I am presented with an error saying that ".net version 4 is not installed". I have attempted to run this as admin using the command line and am just presented with an error (this is because run as admin is missing if I right click on it).
The catch with this is that I've attempted to install the requested version of .net and am just told that it can't because I have a newer version installed.
Any help with this would be greatly appreciated.
Update: I have logged into a machine using admin credentials and it installed without an issue. So I think it might be a system or group policy issue.
We were able to deploy the application by invoking the application that is used to install VSTO files via the command line. This also allowed us to use a certificate when doing so.
The command used to install the certificate allowing it to run is winhttpcertcfg and then the exe VSTOInstaller.exe is ran with a path to the VSTO file as an argument using /i and then is done silently using /s.
I want to publish my application using ClickOnce with some prerequisites (.NET 4.5 and SQL Server Express).
I did as it says in How to: Include Prerequisites with a ClickOnce Application (note that the package folders were at v8.1A folder instead of v8A folder), but it still says it can't find the files. I've tried both Visual Studio 2013 and Visual Studio 2015 RC.
To enable 'Download prerequisites from the same location as my application' in the Prerequisites dialog box, you must download file 'DotNetFX45\dotNetFx45_Full_x86_x64.exe' for item 'Microsoft .NET Framework 4.5 (x86 and x64)' to your local machine. For more information, see http://go.microsoft.com/fwlink/?LinkId=239883.
To enable 'Download prerequisites from the same location as my application' in the Prerequisites dialog box, you must download file 'SqlExpress2012\SQLEXPR32_x86_ENU.EXE' for item 'SQL Server 2012 Express' to your local machine. For more information, see http://go.microsoft.com/fwlink/?LinkId=239883.
To enable 'Download prerequisites from the same location as my application' in the Prerequisites dialog box, you must download file 'SqlExpress2012\SQLEXPR_x64_ENU.EXE' for item 'SQL Server 2012 Express' to your local machine. For more information, see http://go.microsoft.com/fwlink/?LinkId=239883.
To enable 'Download prerequisites from the same location as my application' in the Prerequisites dialog box, you must download file 'DotNetFX40ClientKB2468871\dotNetFx40_Client_x86_x64.exe' for item 'Microsoft .NET Framework 4 Client Profile (x86 and x64) and Update for .NET Framework 4 (KB2468871)' to your local machine. For more information, see http://go.microsoft.com/fwlink/?LinkId=239883.
You have a very wrong idea about what is possible in a ClickOnce deployment. The canonical MSDN page is this one. High-lighting the most significant sections in that web page:
Impact to the user's computer. With Windows Installer deployment, applications often rely on shared components, with the potential for versioning conflicts; with ClickOnce deployment, each application is self-contained and cannot interfere with other applications.
Security permissions. Windows Installer deployment requires administrative permissions and allows only limited user installation; ClickOnce deployment enables non-administrative users to install and grants only those Code Access Security permissions necessary for the application.
Does not affect shared components or other applications: Yes
Installation of shared files: No
Installation to Global Assembly Cache: No
Installation for multiple users: No
Install time registry access: Limited
These intentional restrictions were designed to make users feel good about installing .NET programs with ClickOnce. They don't need assistance from an administrator to get the program installed. And the installer cannot make drastic changes to the machine, the kind that cause other programs to malfunction. A very, very common problem with installers.
This is grossly incompatible with what you are trying to do. Both the .NET Framework and SQL Express are shared components and do require administrator access to install and do risk destabilizing a machine that already has .NET or SQL server installed.
So this simply cannot work. You can select them as Prerequisites but all that happens at install time is that the ClickOnce installer verifies that they are met. In other words, the machine must already have the correct versions of .NET and SQL Express installed. If it doesn't then the deployment will fail and the user gets the dialog that tells him where to download the installer. It is then entirely up to him (or his administrator) to download and run the installer. After which your ClickOnce install completes without trouble.
The deployment wizard is fairly crummy, it should have hidden the radio buttons at the bottom. Only "from the component vendor's web site" is a valid selection for these prerequisites. The bootstrapper .xml file format isn't sophisticated enough to limit the selection.
Only way to get ahead if you want to provide the user with these prerequisites included with the installer is to create a normal MSI installer.
The way I've done this scenario in the past is just to use the built in "publish" features. They seem to work well in my experience.
In the Publish configuration section of your application there is a "Prerequisites" button that you can click and check off .NET Framework and SQL Express, among other things. During the ClickOnce install, it will prompt the user to pull them down from Microsoft before installing your application.
I have written a application in C# using visual studio, I have made a project set up file which as created to files for me in my debug.
The Windows Installer and the setup application are both needed, but i would like to merge them into one, like when you download an app the installer its just one file.
Could some one please show me how to do this, or just point me towards a good source.
Thanks in advance.
If you're using Visual Studio's built-in setup project template to generate your installer, then you don't need the setup.exe file at all.
The only thing you need to distribute is the .msi file. That contains everything that a user would need to install your application. The setup.exe file is simply a stub that launches the setup routines from information in the .msi file, which is a database that the Windows Installer uses to install your application. And since these files can be launched by double-clicking on them if the Windows Installer service is installed, you really don't need to distribute the setup.exe bootstrapper if you don't want to.
Some special reasons that you might want to distribute a setup.exe file are:
You expect for some reason that your users might not have the required version of the Windows Installer installed on their computer. This is getting to be pretty rare nowadays, especially considering how widespread broadband Internet connections are and how pushy OS vendors are getting with pushing automatic updates. But if your users are "disconnected" (in many senses of the word), you might want to use a setup executable to verify the presence of the necessary version of the Windows Installer, install it if it isn't there, and then launch your .msi file to perform the install. (You cannot run a .msi file if you do not have Windows Installer installed.)
You need to support multiple languages. In this case, the setup.exe file can perform a language transformation on the .msi file before launching the installer.
You want to manage the installation of several .msi files in sequence. The way that Windows Installer is designed, it's difficult to chain installations of .msi files, which makes it difficult to install dependencies before or after you install your own application's files. A setup.exe file is not subject to the limitations of the Windows Installer, so it can be used to chain these and precisely manage the order of installation.
In general, creating your own setup.exe file (or using one of the many third-party installer software packages to create it for you) gives you significantly greater flexibility. You essentially have complete control over the installation process, rather than having to follow the rules of Windows Installer.
But 83.44% of the time, this isn't necessary and you should follow the much simpler route of using an .msi file. This also allows system administrators to automate installs across machines that they manage (for example, throughout a corporate network), something that is not supported for raw executable files.
I have developed a C# winform application in Visual Studio 2010 that connects to a Access 2010 *.accdb database. It works fine on my pc but when I install it on another, It throws the error "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine."
I tried to compile it to x86, as advised, without any succes.
Any help/advice is appreciated, I think that I should include this driver as part of my clickOnce install. If so, how do I do so? (It does not appear as an option in the checklist of requirements, in VS Properties > Publish > Previous requirements)
You will have to use a more advanced method of deploying the necessary driver - ClickOnce won't do it by itself as far as I know. I also don't think it's as simple as a single DLL. The driver needs to register with the system etc.
There is a big issue with the Access drivers because of the way they are set up. If the user has Microsoft Office with Access installed, they will already have the ACE driver. The problem is, if they have 32 bit Access installed on a 64 bit machine, your 64 bit application will not be able to talk to Access because the machine only has a 32 bit driver, and you cannot install both.
If none of your users have Microsoft Office with Access, then you should be able to deploy the standalone driver installer for 32/64 bit as necessary with each computer.
It is possible to include arbitrary assemblies and files as part of your ClickOnce install by adding them to the project and changing their file type to Content. They will then appear in the list of Application Files.
Note that you'll get a warning from Visual Studio if you do this, but it can be safely ignored.
You can build an msi instead of oneclick and create a custom action that would install ace driver in quiet mode. Since its an executable you can just run it in a process object
When I install my C# app in windows 7, UAC always shows. I'm not logged in as Administrator but I want my application to be installed without the UAC.
Can you give me ways on how to do it?
The UAC prompt shows for any number of reasons, none of which is "the code inside the exe calls function X or tries to write to place Y." These include:
the name contains setup, patch, update etc (eg setup21.exe) and there is no manifest
you embedded a manifest that asks for requireAdministrator. You would have done this on purpose in Visual Studio.
there is an external manifest (for NewApp.exe it would be NewApp.exe.manifest) in the same folder that asks for requireAdministrator. You would have done this on purpose too.
you have right-clicked the exe, and on the Properties Compatibility you have chosen to elevate it, or to run as XPSP2 which for 7 also elevates
someone in your company has applied a Group Policy that this installation app should run elevated (unlikely)
you once ran it, got a dialog from Windows saying "that may not have worked right" and agreed to try again with "recommended settings"
Do any of these seem likely? If so, correct them and see if the UAC prompt goes away.
Single Package Authoring link text
You'll want to use Windows Installer / Windows Installer XML to make this install behave the way you request.
If you want to install an app without UAC then you can only touch folders that the currently logged in user can write to. Google Chrome does this--it installs the entire application to the user's local application data folder.
It's very non-standard and I would argue MS should prohibit running code from this location, but it's a working solution to requiring administrator/UAC access to install applications.
Incidentally, Google Chrome more recently made a traditional installer available so one user can install it to be used by all users on the computer.
If you want your application to be installed without triggering the UAC, install to %APPDATA% (instead of installing to %ProgramFiles%) and write to the HKCU hive only in the registry (i.e. don't try to write to HKLM, HKCR, etc.)