Prerequisites button disabled – MSI installer

Prerequisities in Visual Studio Projects In Configuration at the top of the dialog, did you try to select either Release or Debug? That should enable the Prerequisites… button. Unecessary, outdated prerequisites? One pet-peeve of mine: is it really necessary to include the .NET runtime as a prerequisite when most users have it installed by their … Read more

Will Web Deployment Projects still be available in Visual Studio 2012?

Web Deployment Projects will NOT be available in VS2012. Instead we will focus on bringing first class publishing support for Website projects. You can read more details at http://blogs.msdn.com/b/webdev/archive/2012/08/06/plans-regarding-website-projects-and-web-deployment-projects.aspx. In a nutshell, you will have all the same features that WDP has, but a lot more as well. Also another good thing about this is … Read more

Use Visual Studio Setup Project to automatically register and GAC a COM Interop DLL

Gacutil.exe won’t be available on the target machine. Not a problem, MSI can get the job done. Right-click “File System on Target Machine”, Add, GAC. Right-click that added folder, Add, Project Output. That ensures the assembly is gac-ed. It can also register the assembly like Regasm.exe does. Set the Register property of the project output … Read more

Visual Studio Installer > How To Launch App at End of Installer

Warning: The application will end up running as a high privilege account, which has security and user experience implications. To run any application after the installation is complete, Right-click on your setup project, click on Custom Actions. Then right-click on Commit, Add Custom Action, and choose the file you would like to run. (Note that … Read more

How to install a windows service programmatically in C#?

I found several errors in the code that you reused and have fixed these and also cleaned it up a little. Again, the original code is taken from here. public static class ServiceInstaller { private const int STANDARD_RIGHTS_REQUIRED = 0xF0000; private const int SERVICE_WIN32_OWN_PROCESS = 0x00000010; [StructLayout(LayoutKind.Sequential)] private class SERVICE_STATUS { public int dwServiceType = … Read more