none
ClickOnce bootstrapper files without installing Visual Studio?

    Question

  • Hello,

    I also asked this question here: http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=4065767&SiteID=1

    On a build server I want to deploy and publish a ClickOnce application. On the build server I want to prevent having Visual Studio installed.

    I installed the 6.1 SDK on the server, but there exists no bootstrapper files in C:\Program Files\Microsoft SDKs\Windows\v6.1. This causes my ClickOnce build to fail.

    Thanks in advance.
    Friday, October 31, 2008 4:40 PM

Answers


  • Hi,

    Sorry for that doesn't work. The _DeploymentGenerateBootstrapper target use the task GenerateBootstrapper to generate a custom Setup.exe that can download and install the package that you choose as the prerequisite. The path attribute of the task GenerateBootstrapper indicates that where to find the bootstrapper packages. By default, if you didn't set the value, GenerateBootstrapper task will get value from the following registry (for .NET 3.5, more information, please see this page).

         HKLM\Software\Microsoft\GenericBootstrapper\3.5

    Please check if you have add the following registry

         Key Name:          HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\GenericBootstrapper\3.5

         Value 0
          Name:            Path
          Type:            REG_SZ
          Data:            c:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\

    Another workaround is that you can specify the Path attribute by overriding the _DeploymentGenerateBootstrapper target or write your own target to use the GenerateBootstrapper use to generator the bootstrapper. Here is a sample for overiding predefined target.

    http://blogs.msdn.com/msbuild/archive/2006/02/10/528822.aspx

    Let me know if this helps.

    Thanks,
    Rong-Chun Zhang


    Please mark the replies as answers if they help and unmark if they don't.
    Wednesday, November 12, 2008 6:20 AM

All replies

  • Windows SDK? I think you'll need the .net SDK, at least version 2.0. Or is it included in the Windows SDK?
    http://blogoscoped.com/archive/2005-08-24-n14.html
    Monday, November 3, 2008 7:49 AM
  • I have both .NET SDK and Windows SDK installed. 
    Monday, November 3, 2008 7:51 AM

  • Hi,

    For Visual Studio 2008, the prerequisites package is stored in the following location:

       \Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages

    You can try to copy these file from the another computer which has Visual Studio 2008 installed, and put them to the same location on build server. More information, please check:

    http://msdn.microsoft.com/en-us/library/ms165429.aspx

    Let me know if this works.

    Thanks,
    Rong-Chun Zhang


    Please mark the replies as answers if they help and unmark if they don't.
    • Marked as answer by Rong-Chun Zhang Friday, November 7, 2008 3:45 AM
    • Unmarked as answer by kaffekop Tuesday, November 11, 2008 2:41 PM
    • Unmarked as answer by kaffekop Tuesday, November 11, 2008 2:41 PM
    • Unmarked as answer by kaffekop Tuesday, November 11, 2008 2:41 PM
    Wednesday, November 5, 2008 10:07 AM
  • Hello,

    Copying the files to the build server did not work. I am still getting (the same) errors from bootstrapping.

    Tuesday, November 11, 2008 2:42 PM

  • Hi,

    Sorry for that doesn't work. The _DeploymentGenerateBootstrapper target use the task GenerateBootstrapper to generate a custom Setup.exe that can download and install the package that you choose as the prerequisite. The path attribute of the task GenerateBootstrapper indicates that where to find the bootstrapper packages. By default, if you didn't set the value, GenerateBootstrapper task will get value from the following registry (for .NET 3.5, more information, please see this page).

         HKLM\Software\Microsoft\GenericBootstrapper\3.5

    Please check if you have add the following registry

         Key Name:          HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\GenericBootstrapper\3.5

         Value 0
          Name:            Path
          Type:            REG_SZ
          Data:            c:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\

    Another workaround is that you can specify the Path attribute by overriding the _DeploymentGenerateBootstrapper target or write your own target to use the GenerateBootstrapper use to generator the bootstrapper. Here is a sample for overiding predefined target.

    http://blogs.msdn.com/msbuild/archive/2006/02/10/528822.aspx

    Let me know if this helps.

    Thanks,
    Rong-Chun Zhang


    Please mark the replies as answers if they help and unmark if they don't.
    Wednesday, November 12, 2008 6:20 AM
  • Thanks. Adding the registry key made it work.
    Friday, November 14, 2008 8:03 AM
  • BTW, I had the same problem, and for me the issue was that somehow the Windows SDK had been _partially_ installed on one drive, but Visual Studio was looking on a different drive.  Re-installing the SDK didn't help, because I _did_ have the SDK installed.  So I just moved the entire contents of:

    C:\Program Files\Microsoft SDKs\Windows

    ...to:

    D:\Program Files\Microsoft SDKs\Windows

    And everything worked fine.

    Moral of the story: check for traces of multiple SDK installations if you're having this problem.

    -Dan
    Thursday, May 14, 2009 9:14 PM
  • Is this really the best solution for publishing a ClickOnce app on a build server without Visual Studio. I would worry about editing the registry and copying files to my build server in the case that these keys will be used internally by other Microsoft to check for evidence whether certain components are installed and such.

    If this is really the only solution then it is just yet another reason to expedite my retreat from using ClickOnce for deploying my application.

    UPDATE: I've posted a feature request to the ConnectDotMicrosoft site to have some mechanism implemented to help support edge cases like this on a build server.

    Tuesday, January 25, 2011 4:12 PM
  • Another solution: turn off bootstrap generation.

    Project properties -> Publish -> Prerequisites... -> uncheck Create setup program to install prerequisite components.

    In enterprise environments the pre-requisites are usually installed centrally from something like SMS and users don't have admin rights locally. So providing a setup.exe isn't useful.

     

    Thursday, December 8, 2011 1:30 AM