Ask a questionAsk a question
 

General DiscussionSetup and Deployment Project FAQ

  • Wednesday, January 25, 2006 6:50 PMDavid Guyer MSFTMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Deployment FAQ

     

    Q: I am now getting the following error when I build: "Unable to update the dependencies of the project. The dependencies for the object 'name.dll' cannot be determined"

    A:

    Workaround:  Try to adjust the order of the Projects in the Solution and leave the Database project to the end.
    We can either edit the Solution (*.sln) file with notepad OR remove and add the Database Project back in the solution. (This also isn’t a great work-around as the addition of a project later in the development cycle will cause the corruption to re-appear).

    HotFix:Contact PSS and ask for the Hotfix for KBB917036: http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B917036

     

    Q: Is it possible (in a VS.net 2003 deployment project) to make the installation of a desktop shortcut conditional (on the value of CHECKBOXA1 for example)?

    A: It is not possible to conditionally install shortcuts.  However, it is possible to conditionally install files.  The work-around is to add 2 copies of the file you would want to add a shortcut to.  Set the condition on each of these files to be based on your check box dialog result, and create your shortcut to point to this file.

     

    Q: How do I install MSDE with my application?

    A1: You should download MSDE Merge Modules from: http://www.microsoft.com/sql/downloads/2000/sp3.asp   and then use this FAQ for more information: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql2k/html/sql_embeddingmsde.asp and this link provides some more information… http://msdn.microsoft.com/library/default.asp?url=/library/en-us/distsql/distsql_8yeq.asp

    A2: If you are using VS 2005, then you should consider using SQL Server Express instead. In order to include SQL Server Express with your application, you just need to open the Prerequisites dialog (on the Setup project property pages) and select SQL Server Express in the list.

     

     

    Q: How do I turn off repair for a file that I expect my users to modify?
    A: There is a solution if you are willing to edit the .msi file after its

      built.

     

      For each file that you don't want automatically repaired, use ORCA or the

      Windows Installer Automation to edit the Component table and delete the

      Keypath entry.  You'll need to use the File table to determine the Component

      value for the rows to edit in the Component table.

     

      If you do this, the repair will only execute if the parent folder is

      missing.

     

     

    Q: How do I modify security on a machine during installation?

    A: See this MSDN Article on Deploying Security: http://msdn.microsoft.com/library/en-us/dnforms/html/winforms11122002.asp

     

    Q: Where can I find some examples of using setup projects?

    A: The Deployment Walkthroughs can be found online at: http://msdn2.microsoft.com/en-us/library/tw8kdk75.aspx

     

    Q: Where can I find an overview to help me plan deployment of a .NET based application?

    A: The following http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/dalgroadmap.asp

     

    Q: Where can I download the Windows Installer SDK (which includes the Orca table editor)?

    A: http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en#filelist

     

    Q: Where can I get help/updates for Crystal Reports

    A: Updated merge modules can be installed from: http://support.crystaldecisions.com/updates/ and Crystal provides support for their software and merge modules.

     

    Q: Where can I get a bootstrapper that will help me install the .NET Frameworks with my application?

    A: For Visual Studio 2005: It’s built-in. Go to the Prerequisites dialog on project properties.

    A: For Visual Studio 2003: http://msdn.microsoft.com/library/en-us/dnnetdep/html/dotnetframedepguid.asp

     Everett Bootstrapper AddIn: http://www.gotdotnet.com/community/workspaces/workspace.aspx?ID=2F8F0A23-F529-4158-8E0A-D187D16F41F1

     

    http://workspaces.gotdotnet.com/vsboot

     

    Q: "This Setup Does Not Contain the .NET Framework" Error Message During Visual Studio .NET Deployment

    A: http://support.microsoft.com/default.aspx?scid=kb;en-us;320426

         Or… http://workspaces.gotdotnet.com/vsboot  for the Everett Bootstrapper plug-in

     

     

    Q: I’m getting an “Unrecoverable Build Error” building a setup project.

    A: http://support.microsoft.com/?id=329214

     

    Q: I’m getting  An error occurred when validating.  HRESULT = '80040155'

    A: http://support.microsoft.com/?id=329214  and do the steps for “Missing Registrations”

        if that doesn't work, then try the help in this post: http://support.installshield.com/kb/view.asp?articleid=q106194 

     

     

    Q: How do I modify the settings for an IIS folder that aren’t available on a Web Folder in the File System Editor.

    A: See the following whitepaper on how to modify IIS settings using a custom action: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchUsingCustomActionsToModifyInternetInformationServerDuringDeployment.asp?frame=true

     

    Q: How do I deploy a Hybrid VB6 and VB.NET application?

    A: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchUsingCustomActionsToModifyInternetInformationServerDuringDeployment.asp?frame=true

     

    Q: What changes are there in deploying Visual Studio.NET applications compared to VB6 applications?

    A: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchUsingCustomActionsToModifyInternetInformationServerDuringDeployment.asp?frame=true

     

    Q: Where can I find more information about “No Touch Deployment”

    A: http://msdn.microsoft.com/library/en-us/dv_vstechart/html/vbtchno-touchdeploymentinnetframework.asp . You should also look at it’s successor in Visual Studio 2005 / .NET Frameworks 2.0, ClickOnce at: http://msdn.microsoft.com/vbasic/learning/clickonce/

     

    Q: How do I deploy ASP.NET applications?

    A: http://msdn.microsoft.com/library/default.asp?url=/msdnmag/issues/02/11/ASPColumn/TOC.asp

     

    Q: How do I debug a custom action / installer class?

    A: You can use one of three  methods:

    • Add a call in your code:  System.Diagnostics.Debugger.Launch which will open the Just In Time Debugging window and allow you to attach or open a new debugger to your code.
    • Add a call in your code MessageBox.Show(“Debug Me”). When it is shown, use a copy of Visual Studio.NET to attach to the MessageBox process. Then “Break” into the debugger.
    • Set your debugging preferences to start InstalUtil.exe (its in \winnt\Microsoft.net\Framework\version) and pass it your assembly as a parameter. When you F5, you’ll hit your breakpoint. InstallUtil will run your custom actions the same way MSI does so you should be okay.

     

     

    Q: A Windows Installer Repair Dialog Box Appears When You Start Visual Studio .NET

    A: http://support.microsoft.com/default.aspx?scid=kb;en-us;313900

     

     

    Q: How do I create shortcuts for a Visual Studio .NET Setup project?

    A: http://support.microsoft.com/default.aspx?scid=kb;en-us;307358

     

    Q: "Error Installing ODBC Driver" Error Message When You Use the Vfpodbc.msm Merge Module in a Visual Studio .NET Setup and Deployment Project

    A: http://support.microsoft.com/default.aspx?scid=kb;en-us;814700

     

    Q: "Unable to build custom action" Error When You Build a Setup Project

    A: http://support.microsoft.com/default.aspx?scid=kb;en-us;814744

     

    Q: Deploy a Visual Basic .NET Application That Uses ADO Interop

    A: http://support.microsoft.com/default.aspx?scid=kb;en-us;321688

     

    Q: Error 1619 When You Install a Package That Uses Web Bootstrapper

    A: http://support.microsoft.com/default.aspx?scid=kb;en-us;313498

     

    Q: Deploy an Assembly to the Target Computer Global Assembly Cache (GAC)

    A: http://support.microsoft.com/default.aspx?scid=kb;en-us;324168

     

     

    Q: In Visual Studio 2003, how do I build a Web Setup that I can install on a server that has multiple web sites, especially one using IP addresses or Host Headers.

    A: http://support.microsoft.com/?id=821335

     

    Q: Registering Assemblies with Com interfaces doesn’t work, RegAsm bug…

    A: If your assembly has a dependency, like on another class library, and you are trying to use RegisterCOM, it might not work.  This is because we call RegAsm to get the registration information, but RegAsm is called in the obj directory. As a result, the dependency isn’t found and the RegAsm fails, but doesn’t tell us it fails…  The best workaround is to add the assembly by hand from the bin directory.  Another workaround is to use RegisterSelfReg.

     

    Hope that helps.  Also, make sure you manually register using RegAsm /Codebase… if your assembly isn’t in a shared location, it won’t be found unless it’s in the same directory as the calling code (I think, maybe not even then)… /codebase enters the directory into the registry

     

     

    Q: Is it possible to (conditionally)  launch the installed application when the installation has completed?

    A: As of this time, there is no good solution to doing this.

     

    Q: How do I get a log file for my install?

    A: There are two good ways.

    1.       Run from the command line with the logging switch

    misexec /i mysetup.msi /l*v mylog.txt

    2.       Save the following as a .reg file and load it into your registry.

    REGEDIT4

     

    [HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer]

    "Logging"="voicewarmup"

    "Debug"=dword:00000007

                   

                     Then, go to your temp directory, and sort on date. The most recent msi*.log file is from the most recent install or uninstall.

     

     

     

    Q: Installing to a subdirectory of an already installed product.

    A:

    1. Product 1 is installed and has a file named MyFile.txt.

    2. You use ORCA (from the Windows Installer SDK) to view the File table, and find the row that represents MyFile.txt.

    3. You get the value of the Component_ column and then open the Component Table

    4. In the Component Table you find the row that has the Component_ value in the Component column, and get the ComponentID. Copy this value into clipboard. Close ORCA

    5. In  your setup project, open the Launch Conditions Editor and add a Windows Installer Component Search. For the ComponentID property of the new search, paste the ComponentID.

    6. Copy the Property property. It should be something like COMPONENTEXISTS1

    7. Open the File System Editor and select the Application Folder

    8. Edit the DefaultLocation property to be somethig like [COMPONETNEXISTS1]MySubFolder  (since the path in COMPONENTEXISTS1 includes a trailing \)

     

    Note: After step 6 above, you might want to add a Condition to the Launch Conditions Editor to check if the component was found, and to block install and show a message if it wasnt. The condition would be COMPONENTEXISTS1 (which means, it's okay to run the installer if COMPONENTEXISTS1 is not empty).

     

    Q: Installing Custom Web Folders to a non-default port

    A: So, there is a way to do this...  You need to know the Property property values for each of your Web Custom Folders. Typically, they are something like NEWWEBPROPERTY1.

     

    Then, you need to run your install from the command line. Let's say your web server is on port 20 instead.  You also need to include TARGETPORT for the Web Application Folder. So, your command line would look like this for just one web folder, add more PROPERTY=VALUE pairs for each web folder...

     

    msiexec /i mywebsetup.msi TARGETPORT=20 NEWWEBPROPERTY1PORT=20

     

    That should redirect each listed folder's port to the specified port. 

     

    You might want to remove the Installation Address dialog, since if someone changes the port in the UI during install time, the Custom Web Folders will use the command line value.

     

    Q: Install to the root of a web site, c:\inetpub\wwwroot…

    A: Set the VirtualDirectory to an empty string, either in the Web Setup project, or during install.

     

     

    Q: I am trying to find the least painful way to install a ServicedComponent into the GAC and configure it in the COM+ catalog.

     

    I tried to add an Installer class to my serviced component and overrode the Install(Idictionary stateSaver) method.  Next I added the assembly to a merge module, put the serviced component in the GAC, and added a custom action to the MSM.  I received the following error when I compiled:
    "Unable to build custom action named 'Primary output from RegServer (Active)' because the file's Folder property is set to Global Assembly Cache."

    A: It is not supported.  The primary reason is that assemblies in the GAC are not always available (i.e. committed to the GAC) when the custom actions are run.

     

    There is a workaround, and it is basically to put your code into different files, and put your custom action code into a file that is not going to the GAC, if possible.  Sometimes it's not possible to spread these out. 

     

    I'm pretty certain, that even though there is some documentation that says that COM+ files must go into the GAC, that they really don't if they are registered correctly... but I'm not 100% sure.

     

     

    Q: How do I automatically run my program after installation?

    A: There is a way that might work, but it also might not work the way you expect.

    1.       Create a .vbs file with the following code.

    Set WshShell = CreateObject("WScript.Shell")

    WshShell.Run """" & Property("CustomActionData") & """",7,False

    Set WshShell = Nothing

    2.       Open your setup project and go to the Custom Actions Editor

    3.       Select the Commit Node and right-click, add a new Custom Action

    4.       Browse the filesystem to add the .vbs file from step 1

    5.       Edit the CustomActionData property and add the following:

    [TARGETDIR]YourApp.exe

    6.       Change “YourApp.exe” to whatever your startup app file name is.

     

     

     

    Q:  How do I create an uninstall link on my shortcut:

    A:  

    1.       In your setup project’s directory, create a new uninstall.bat file.

    2.       In your Setup project, copy the ProductCode property (something like [12345678-1234-1234-1234-123412341234]

    3.       Edit the uninstall.bat so that it has one line that says:

    Msiexec /x [insert product code here]

    4.       Add the uninstall.bat to your setup project’s application folder.

    5.       Right-click on the uninstall.bat to create a shortcut, and then put it in the Start menu folder you want it in (in the setup project).

    6.       Rename the Shortcut to something like “Uninstall MyApplication”

     

    That should do it.

     

     


    Q: How do I turn off dependency resolving/searching?

    A:  Unfortunately, there's no direct way to turn off dependency analysis. However, there is a workaround: you can uncheck the "Include standard search paths" option in the dialog that comes up from the SearchPath property. However, there are a few additional points to consider: (1) You need to add your files using Add -> File. If you use Add -> Project Output then dependencies reported from the code project will be included. (2) When you build, you may see one or more "Unable to find dependency" warnings, but these can be ignored in this case. (3) If you only want to turn off dependency analysis for some files, then you can put those files in a merge module project with standard search paths turned off. Then use Add -> Merge Module to include the .msm in a regular setup project with standard search paths turned on.

     

    Q: Is there a way to turn off Dependency detection?

    A: Unfortunately, there's no direct way to turn off dependency analysis. However, there is a workaround:

    You can uncheck the "Include standard search paths" option in the dialog that comes up from the SearchPath property.

    However, there are a few additional points to consider:

    (1)     You need to add your files using Add -> File. If you use Add -> Project Output then dependencies reported from the code project will be included.

    (2)     When you build, you may see one or more "Unable to find dependency" warnings, but these can be ignored in this case.

    (3)     If you only want to turn off dependency analysis for some files, then you can put those files in a merge module project with standard search paths turned off. Then use Add -> Merge Module to include the .msm in a regular setup project with standard search paths turned on.

All Replies

  • Tuesday, February 21, 2006 6:53 PMStefan KruegerMVPUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
     David Guyer MS wrote:

    Q: Is it possible (in a VS.net 2003 deployment project) to make the installation of a desktop shortcut conditional (on the value of CHECKBOXA1 for example)?

    A: It is not possible to conditionally install shortcuts.  However, it is possible to conditionally install files.  The work-around is to add 2 copies of the file you would want to add a shortcut to.  Set the condition on each of these files to be based on your check box dialog result, and create your shortcut to point to this file.

     

    "Never create two components that install a resource under the same name and target location. ... Note that the previous rule means that two components must not have the same key path file."

    http://msdn.microsoft.com/library/en-us/msi/setup/organizing_applications_into_components.asp

     

     David Guyer MS wrote:

    Q: How do I install MSDE with my application?

    A1: You should download MSDE Merge Modules from: http://www.microsoft.com/sql/downloads/2000/sp3.asp   and then use this FAQ for more information: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql2k/html/sql_embeddingmsde.asp and this link provides some more information… http://msdn.microsoft.com/library/default.asp?url=/library/en-us/distsql/distsql_8yeq.asp

     

    "Desktop Engine (MSDE 2000) SP3a provides merge modules to support existing applications that use merge modules. The Setup utilities for new applications should be written to call the MSDE 2000 Setup utility instead of directly consuming the MSDE 2000 merge modules."

    http://support.microsoft.com/default.aspx?scid=kb;en-us;889551

     

  • Thursday, February 23, 2006 9:26 PMPhilWilsonModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    This seems very dangerous to me:

     

    "Q: How do I turn off repair for a file that I expect my users to modify?
    A: There is a solution if you are willing to edit the .msi file after its

      built.

     

      For each file that you don't want automatically repaired, use ORCA or the

      Windows Installer Automation to edit the Component table and delete the

      Keypath entry.  You'll need to use the File table to determine the Component

      value for the rows to edit in the Component table.

     

      If you do this, the repair will only execute if the parent folder is

      missing."

     

    The KeyPath entry is a requirement for many items to work correctly.  The Class table is an example. The class table has a Component_  entry that is the "External key into the Component specifying the component whose key file provides the COM server." If you take away the KeyPath, that linkage is gone. The documentation that references the key file of a component says it's used with Windows File Protection, with updating files based on version, with the TypeLib table.

  • Thursday, March 23, 2006 7:29 PMzyunique Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Could you tell me where I can find the ProductCode? Is it the ProductCode of VS .NET 2003 or the Application I am creating?



    Thanks a lot!



    ---------------------------------------------------


    Q:  How do I create an uninstall link on my shortcut:

    A:  

    1.       In your setup project’s directory, create a new uninstall.bat file.

    2.       In your Setup project, copy the ProductCode property (something like [12345678-1234-1234-1234-123412341234]

    3.       Edit the uninstall.bat so that it has one line that says:

    Msiexec /x [insert product code here]

    4.       Add the uninstall.bat to your setup project’s application folder.

    5.       Right-click on the uninstall.bat to create a shortcut, and then put it in the Start menu folder you want it in (in the setup project).

    6.       Rename the Shortcut to something like “Uninstall MyApplication”

     

    That should do it.

  • Thursday, May 11, 2006 4:43 AMDavid Guyer MSFTMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    The product code of the MSI you are building. It's in the ProductCode property of the setup project properties.

     

  • Tuesday, June 13, 2006 10:23 PMKenny Spade Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    I've seen quite a few posts giving the same advice as this guy gave. Is there a better suggestion for how to prevent a file from triggering the repair?
  • Wednesday, June 14, 2006 5:19 AMDavid Guyer MSFTMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    It is the product code of the application you are deploying. You can find it in the Setup project properties.
  • Monday, July 24, 2006 1:21 PMSatish Rao Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
     

    I am having a problem with an application which is a NTD(No-touch deployment). The application cannot see the Config file, inspite of the config file being downloaded. I checked the GACUTIL to see the download cache all the necessary dlls are downloaded. I checked to Temp Internet files, it had all the necessary files including the Config file, but the application comes back with an error which indicates that I could not read the config file. Can anyone tell me what is happening.

    Also the security policy was deployed from the web server. The application is deployed on the MACHINE Level with FULL TRUST access.

    Please help

  • Monday, July 31, 2006 6:21 AMJandost Khoso Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Is there anyway to install MSDE 2000 with Visual Studio 2005? i need to do that, please help me. What about running scripts or running another Application at installment time?

    Regards,
  • Tuesday, August 01, 2006 6:01 AMDavid Guyer MSFTMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Yes, take a look at the second question/Answer in the FAQ, it has links for how to do MSDE.

     

  • Wednesday, August 23, 2006 1:03 PMMukhthar Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hi there,

       I'm facing a small problem while creating a web setup project in VS 2005. When I select Add>Project Output> I see only "content Files" but I dont know where are the rest like "Primary Output,Localized resources,debug symbols,documentation files, etc." But this is the not the case when I want to create a windows setup. Can anyone tell me why I'm facing this problem for web setup?

    Thanks
    Mukhthar

  • Tuesday, August 29, 2006 4:22 PMShiplu Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    I have a project and its setup project with it. all are in the same project.
    the setup project worked at the very first time when I added the setup project.
    after that I updated my main project. but when I build my setup project it does not reflect my
    updates.
    how can I make the setup project updatable ?
    please help me
    or tell me where should I talk about this.

    Thank You
  • Thursday, November 16, 2006 7:28 PMmoGun Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hi David,

    Can you take a look at this?

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=926538&SiteID=1

    Regards

    Mohan

     

  • Tuesday, November 21, 2006 3:54 AMsuperjugy Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Q:  How do I create an uninstall link on my shortcut:

    A:  

    1.       In your setup project’s directory, create a new uninstall.bat file.

    2.       In your Setup project, copy the ProductCode property (something like [12345678-1234-1234-1234-123412341234]

    3.       Edit the uninstall.bat so that it has one line that says:

    Msiexec /x [insert product code here]

    4.       Add the uninstall.bat to your setup project’s application folder.

    5.       Right-click on the uninstall.bat to create a shortcut, and then put it in the Start menu folder you want it in (in the setup project).

    6.       Rename the Shortcut to something like “Uninstall MyApplication”

     

    That should do it.

     

    and how exactlyu do i get the productcode? i cant seem to get it right.

  • Monday, December 04, 2006 10:36 PMsnovi Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Is it possible using VS2005 Setup project to include/combine my MSI file and all content of the pre-requisite folders into the bootstrapper setup.exe? So the end-users would have just one big file - setup.exe, which would include everything required for the installation.
  • Tuesday, December 12, 2006 3:44 PMAlexei_shk Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hi,

    The suggestion in FAQ of MSDE doesn't work. I have tryed and got the error like just in time and so on.
    So how can I solve it?

    Thank's
    Alexei

  • Thursday, December 14, 2006 6:13 PMGobi N Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    I'm creating a setup and msi file for a .Net 3.0 windows application. Also I set the prerequisites for the setup project with .Net 2.0 and .Net 3.0. While installing through setup (setup.exe) the validation is happened properly but while installing from MSI(MyApplication.msi) file the validation is not happening properly.   The validation is happened for MSI when the system does not have both the .Net 2.0 and .Net 3.0 versions and the installation is allowing when the system has only .net 2.0 version.

    How to resolve the problem ..any help please ?

    Thanks

     

     

  • Wednesday, February 14, 2007 2:40 PMDragan Panjkov Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    I'll try to clarify...
    Product code can be found in Properties window when your Setup project is selected in Solution Explorer. It can be easily recognized because it is enclosed in braces, for example
    {12345678-1234-1234-1234-123412341234}.

    So, uninstall.bat will have following structure:

    Msiexec /x
    {12345678-1234-1234-1234-123412341234}

    If you want to see all options for msiexec, simply open command prompt and type in msiexec without any parameters. Windows Installer window will open with all available options and their explanation
    I hope this will help...

    Dragan Panjkov

  • Monday, February 19, 2007 2:32 PMel-neilios Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hi,

    I have a problem I couldn't find on your FAQ. I have an application consisting of 3 Windows Services and a setup project to deploy them. I have put conditions on the installation of these services (using Custom Actions -> Install) which works fine but I'm using the same conditions for the unistallation of these services also (Custom Actions -> Uninstall). I am finding that 2 of the 3 services are being properly uninstalled but one of them is still present in the registry (even though the actual files for it have been removed).

    Anyone got and ideas?

    Regards,

    Neil Alderson

  • Tuesday, February 20, 2007 11:19 AMel-neilios Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Don't worry, I answered my own question with a work around: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1247387&SiteID=1

    Neil

  • Wednesday, February 21, 2007 1:35 PMraj_vasant Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    I am able to execute my batch file from VS 2005 installation, using the following process explained in the other posts.

    1.       Create a .vbs file with the following code.

    Set WshShell = CreateObject("WScript.Shell")

    WshShell.Run """" & Property("CustomActionData") & """",7,False

    Set WshShell = Nothing

    2.       Open your setup project and go to the Custom Actions Editor

    3.       Select the Commit Node and right-click, add a new Custom Action

    4.       Browse the filesystem to add the .vbs file from step 1

    5.       Edit the CustomActionData property and add the following:

    [TARGETDIR]YourApp.exe

    6.       Change “YourApp.exe” to whatever your startup app file name is.

     

    I want to pass parametes to my batch file. I tried by adding a text box on a dialog and using the PROPERTY as the argument. But it was not working.

    Any idea??

     

    Thanks in advance.

     

  • Thursday, March 22, 2007 3:26 AMbeeth Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hi,

    I've been searching around on how to deploy C++/CLI applications. There don't seemed to be any Publish feature or similar  in VS2005. Pls help. Thanks

    -beeth

  • Monday, March 26, 2007 5:46 PMRob Ainscough Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    So basically it sounds like "Buy InstallShield 12 or 2008 Beta" for $1800 or "Wise Installation Studio" $1200 or code your own installer with the assumption .NET 2.0 or .NET 3.0 will be available on the client system.

    Anyone else stop to ask the question "installs shouldn't be this complicated"?  "Installer Engineer" shouldn't be a separate job title -- come on folks, this is ridiculous!

    Oh the tangled web Microsoft has weaved...using ORCA to get stuff done, finding ComponentIDs...I realize you folks are just helping by posting solutions, but I think the best help would be to go back to Microsoft and say "NO THIS IS NOT ADEQUATE".   Deployment projects in VS 2005 are a joke!  Error reporting from MSI is a joke.

    Rob.

  • Tuesday, April 03, 2007 4:03 PMStefan KruegerMVPUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    There are more tools than just InstallShield and Wise, see http://www.installsite.org/go/msidev.htm for a list. WiX for instance is a free open source tool which is quite popular, however requires a solid understanding of the technology, and you must write XML code (it has Visual Studio integration).

    And yes, I guess we all (or most of us) agree that Setup&Deployment projects in VS are of limited use.

  • Tuesday, April 24, 2007 6:13 PMNemnoch Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    A2: If you are using VS 2005, then you should consider using SQL Server Express instead. In order to include SQL Server Express with your application, you just need to open the Prerequisites dialog (on the Setup project property pages) and select SQL Server Express in the list.

     

    Just a question on this.  If you are using MS SQL Server and an OLE DB connection into it, this would be required.  Correct?  I have created a deployment and used the Pre-reqs. dialog to add in SQL Server Express (and some other items like MS Data Access 2.8), but it does not seem to install them on a freshly built machine.  Any ideas on how to fix this?

  • Thursday, May 03, 2007 4:34 PMColbyRingeisen Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Regarding

     

    "Never create two components that install a resource under the same name and target location. ... Note that the previous rule means that two components must not have the same key path file."

    http://msdn.microsoft.com/library/en-us/msi/setup/organizing_applications_into_components.asp

    Doesn't this imply installation of the two components together?  IOW, if the two components are conditioned to be mutually exclusive so that only one can be installed on the target system at a time then there shouldn't be a problem using the proposed work around.  In addition to the original scenario, consider the following scenarios:

    1. A binary that can be installed to run as a service or to run as an application.  Two separate components that have the same key path but only one can exist on the target system at a time.  The user even has the ability to switch back and forth by using the 'Modify' option in the Add/Remove Programs applet which swaps the components when the user selects the other option (uninstalls the install component and installs the other component).
    2. Installation of a service that can run as LocalSystem or under a specific user account.  Since the ServiceType column of the ServiceInstall table isn't formatted this scenario would also require two separate, mutually exclusive components that have the same key path.

    Comments?

     

  • Wednesday, June 06, 2007 1:00 PMaruvinkun Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hi,

     

    I'm creating a web setup project for my webapp and I'm trying to include the installation of some external softwares like Adobe Reader which will be used by the web app. I tried a few things to work this out but no luck (see below).

    1. Add the setup of the software in Custom Actions Commit section of the web setup project. But when i tried the installation, it cannot proceed since somehow it identifies that the installation of the main web app must be completed first before installing the external software.

    2. Create a Class Library project with Installer class, override the Commit section and execute the setup of the external software using Diagnostics.Process.Start. Add the output of this project to the web setup project. For this scenario, where do I put the setup file of external software? I tried placing it in the same directery where MSI file is located and use Process.Start("SetupOfExternalSoftware.exe") but does not seem to work. How to get the installer path?

    3. I also tried adding radio button dialog boxes in the User Interface of the web setup project. But how do we set the behavior for each radio button" Like for the first radio button, install prerequisites, 2nd install web application, 3rd activate the license of the product, etc.

     

    I really hope and appreciate your help on this. Thanks in advance.

     

    - Alvin

     

  • Thursday, June 14, 2007 2:22 AMRobert E. Maurer Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hello,  I hope this thread is not dead since I just found it.

     

    I am having an issue trying to install a web site from VS 2005.  Our target server is running Windows 2003 and has multiple web sites and uses host headers.  I saw a previous answer on how to handle that but it was for VS 2003.  Is that the same work around for 2005, or is there a better way?

  • Sunday, June 17, 2007 5:51 PMRinaldo1961 Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hi all

     

    I did'nt found my question in the FAQ. Can I localize the setup to another language, ie dutch?

     

    thanks

  • Tuesday, July 10, 2007 8:07 PMcruiseoveride Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    I am installing a bunch of .jar files with my program. I want to add a shortcut in the start menu that will do the following

    javaw.exe /the/path/it/installed/into/file.jar -abc -def /p


    thats just an example. How do i create a shortcut like that.

    Or how do i create a shortcut to a file in my Applications folder with a custom run command?
  • Monday, July 23, 2007 12:40 AMdereck27 Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    I found i needed ... thanks moGun
  • Tuesday, July 31, 2007 1:18 PMCarl Woodhouse Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    "Q: How do I turn off repair for a file that I expect my users to modify?
    A: There is a solution if you are willing to edit the .msi file after its

      built.

     

      For each file that you don't want automatically repaired, use ORCA or the

      Windows Installer Automation to edit the Component table and delete the

      Keypath entry.  You'll need to use the File table to determine the Component

      value for the rows to edit in the Component table.

     

      If you do this, the repair will only execute if the parent folder is

      missing."

     

    As stated, previously, this isn't the best idea in the world ....

     

    Its much simpler just to set the condition of the file you expect the user to modify to this:

     

    NOT REINSTALL

     

    Also, set the "Transative" property to true.

  • Thursday, August 16, 2007 6:27 AMIconic Popup Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    You talk about RegisterSelfReg in this article.
    This name of this tool is written in msdn but there is nothing about it.
    And you, you simply copy the msdn article, without explanation.
    What is RegisterSelfReg ?
    Where is this tool ?
    What is it for ?

  • Thursday, August 16, 2007 7:11 PMCodeProb Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    I am developing a addin to carry following tasks.

     

    1) Retrieve the output file name (path of .msi file) information programmatically from deployment project (setup). project.properties is not retrieving properties that I could see on project property pages by manually  right clicking on deployment project and clicking properties. Can some one give some hints how to retrieve it?

     

    2) Modify the deployment project so that application would be always be installed in all user profile on the client machine. I should also disable the browse button that would allow the user to specify new location instead of default location. Can some one please tell if it is possible achieve this progammatically? Or should I actually create a custom setup project and use for all appliations?

     

     

  • Tuesday, October 02, 2007 7:36 AMChris Arnold Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hi,

     

    VS2005 gives the developer the ability to discover the value of "Application.CommonAppDataPath" at runtime.

     

    Is there a way of getting this value during an installation in order to install files to this location?

     

    Cheers,

     

    J.

  • Wednesday, November 07, 2007 5:57 PMa5820_coder Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

     

    I have a setup project this installs several OCX and DLL files that need registered.  I there a way that the installer could look at the date on the file and replace it if the date is newer?   I don't want to use the version on these files to determine if they should be replaced.

     

     

    Thanks,

    5820_coder

  • Thursday, February 21, 2008 12:28 PMsujeet Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    R sir

     

     

    i wana learn 2008server

    what can i do

  • Tuesday, February 26, 2008 9:51 AMS Balaji Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hi snovi

    Did you find any solution/work around for the problem. Iam facing the same problem too. Kindly let me know if you have any solution.

    rgds,

    S.Balaji

     

  • Thursday, June 05, 2008 7:28 AMNeoPunk Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    How to make reinstall action?

    I use  msiexec/I [Installation Path ] REINSTALL=ALL REINSTALLMODE=vomus, but it's not automatic. How can i start msi package to reinstall application automaticly?

    Thanks.
  • Wednesday, June 18, 2008 8:11 AMStefan KruegerMVPUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    It looks like you are trying to install a minor update. If this update is not in the format of a Windows Installer patch (.msp) but as a full .msi file, then these command line parameters are required - there's no way around this. What you can do to make this easier for your customers is use a setup.exe which will launch msiexec with these command line parameters. You can get some tools and samples for this purpose from http://www.installsite.org/pages/en/msi/tips.htm in section "Launchers and Runtime Installers".

  • Tuesday, November 18, 2008 10:24 AMsandeep_koc Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Q: Is there any way to Expire the licence for installed s/w. How to use this feature.(e.g  If i want that after installing the application it should expire in 7 days. How to do that??)
  • Tuesday, November 18, 2008 4:57 PMDavid Guyer MSFTMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

     

    There is nothing built into Setup Projects, or Windows Installer to do that. You could either look for 3rd party solutions on the web, or code up your own, depending on how robust you need it to be.
  • Wednesday, November 19, 2008 5:08 AMsandeep_koc Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hi,

     

        For Licencing issue which way i have to go for coding myself???