locked
Problems building installer with Surface 2 prerequisite RRS feed

  • Question

  • I created a Surface 2.0 SDK application and its accompanying Setup project. I have selected Microsoft Surface "2" Runtime as one of the prerequisites but when I build the setup project I get the following error:

    WARNING: The value of the 'PublicKey' attribute in 'Microsoft Surface "2" Runtime' does not match that of file 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\SurfaceRuntime2.0\SurfaceRuntime.msi'.
    

    When I try to run the installer on the test PC, I get the following (showing only the last few lines of the Install.log):

    Result of checks for command 'SurfaceRuntime2.0\SurfaceRuntime.msi' is 'Install'
    'Microsoft Surface "2" Runtime' RunCheck result: Install Needed
    EULA for components 'Microsoft Surface "2" Runtime' was accepted.
    Copying files to temporary directory "C:\Users\user\AppData\Local\Temp\VSDFD85.tmp\"
    Downloading files to "C:\Users\user\AppData\Local\Temp\VSDFD85.tmp\"
    (17-8-2011 14:34:31) Downloading 'SurfaceRuntime2.0\SurfaceRuntime.msi' from 'SurfaceHomeSite' to 'C:\Users\user\AppData\Local\Temp\VSDFD85.tmp\'
    Download completed at 17-8-2011 14:34:31
    Downloading failed with HRESULT=-2146697203
    

    Any ideas?

    If this is not the correct forum, please direct me to a more appropriate one. Thank you!

    Monday, August 29, 2011 8:18 AM

Answers

  • Got it!

    It seems that the Package.XML content has some issue.

    Open the bootstrapper folder:

    This is my file path, you can ref it, and find it in your computer.

    C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\SurfaceRuntime2.0\en\Package.xml

    Then find the SurfaceToolkitHomeSite node, and replace this string to SurfaceHomeSite.

    (You need the Administrator permission to modify this file.)

    SurfaceToolkitHomeSite  -->  SurfaceHomeSite

    This is said that we need keep the node name is the same as it used in the Product.XML file.

    And then open your Visual Studio, and re-add this prerequisite component to publish your application.

     

    Please show me the result after you tried my suggestion, thanks.

    Best wishes,


    Mike [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.



    Wednesday, August 31, 2011 3:30 AM

All replies

  • // HRESULT=-2146697203
    // MessageId: ERROR_INVALID_DATA
    //
    // MessageText:
    //
    // The data is invalid.
    //
    #define ERROR_INVALID_DATA        13L
    

    Have you test it in the other computers to exclude some defective hardware issue?

    It seems that you let the end user download the msi from web site, maybe something effect the internet downloading, then the data is not complete/valid on your computer any more.

    Have you test copy the sdk runtime msi file to the end user's computer and install it locally?

     

     


    Mike [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Tuesday, August 30, 2011 3:22 AM
  • Thanks for your reply.

    Yes, this has been tested on at least 2 other PCs, one client's PC and one other dev PC. It was also tested in a VM so I am not sure about defective hardware. And yes, when prerequisites are installed manually all is well.

    I have retried this many times without success.

    Tuesday, August 30, 2011 11:10 AM
  • I hope that we can ensure if the internet data transfer causes the data broken, not completely, so if you can let others computer this case, maybe can ensure the internet issue.

    http://support.microsoft.com/kb/934387

    You can ensure the problems mentioned in this KB.

    Maybe you will need to use this option to be the workaround: "Download prerequisites from same location as my application".


    Mike [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Tuesday, August 30, 2011 11:41 AM
  • Ok, I have tried on another Win 7 VM and here is something I noticed. Please see the following log:

    (8/30/2011 3:22:28 PM) Downloading 'DotNetFX40\dotNetFx40_Full_setup.exe' from 'http://go.microsoft.com/fwlink/?linkid=182805' to 'C:\Users\test\AppData\Local\Temp\VSD1C3F.tmp\'
    Download completed at 8/30/2011 3:22:35 PM
    Verifying file integrity of C:\Users\test\AppData\Local\Temp\VSD1C3F.tmp\DotNetFX40\dotNetFx40_Full_setup.exe
    WinVerifyTrust returned 0
    File trusted
    (8/30/2011 3:22:37 PM) Downloading 'SurfaceRuntime2.0\SurfaceRuntime.msi' from 'SurfaceHomeSite' to 'C:\Users\test\AppData\Local\Temp\VSD1C3F.tmp\'
    Download completed at 8/30/2011 3:22:37 PM
    Downloading failed with HRESULT=-2146697203
    

    If you take a careful look you will see that NET4 setup is being downloaded from a valid URL while Surface 2 Runtime download is attempted from 'SurfaceHomeSite' - which is obviously invalid URL. I think this is the cause of the problem.

    I wonder how does one fix 'SurfaceHomeSite' to point to a correct location and why this didn't work in the first place?

    Tuesday, August 30, 2011 1:26 PM
  • Got it!

    It seems that the Package.XML content has some issue.

    Open the bootstrapper folder:

    This is my file path, you can ref it, and find it in your computer.

    C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\SurfaceRuntime2.0\en\Package.xml

    Then find the SurfaceToolkitHomeSite node, and replace this string to SurfaceHomeSite.

    (You need the Administrator permission to modify this file.)

    SurfaceToolkitHomeSite  -->  SurfaceHomeSite

    This is said that we need keep the node name is the same as it used in the Product.XML file.

    And then open your Visual Studio, and re-add this prerequisite component to publish your application.

     

    Please show me the result after you tried my suggestion, thanks.

    Best wishes,


    Mike [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.



    Wednesday, August 31, 2011 3:30 AM
  • Thanks! Great. This seems to work now exactly as expected.
    The only remaining issue I have now is the warning below. I wonder if that can cause any problems down the road?
    WARNING: The value of the 'PublicKey' attribute in 'Microsoft Surface "2" Runtime' does not match that of file 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\SurfaceRuntime2.0\SurfaceRuntime.msi'.
    



    Wednesday, August 31, 2011 12:16 PM
  • You're welcome!

    It seems the Product.xml PublicKey issue, but the download url is right now, so I think there would be no problem even though there's this warning for you.

    Have a nice day!


    Mike [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Thursday, September 1, 2011 2:10 AM
  • There are other issues with this particular package, it's because it was a copy paste from the Microsoft Surface for Windows 7 Touch Beta SDK (no longer exists). I reported them to the Surface team back in July and the go link was changed ot point from the Beta Toolkit to the Surface 2 runtime, the other changes required a redeployment so were not done.

    Issues and fixes can be found on my blog

    http://hittestvisible.com/index.php/2011/09/issues-with-the-surface-2-runtime-bootstrapper-package/

    Thursday, September 29, 2011 8:30 AM