locked
General metadata correctness testing error when migrate from 8.0 to 8.1

    Question

  • I installed VS2013 Express and tried to migrate my app from 8.0 to 8.1.
    Rebuild worked fine except some depreciated warnings. The packages were generated for Windows Store.
    The following error was generated to run Certification Kit 3.1

    General metadata correctness test

      • Error Found: The general metadata correctness test detected the following errors:
        • Type MyApp.__IMainPagePublicNonVirtuals in file C:\Program Files\WindowsApps\35310Head.MyAppName_2.1.6.12141_x86__4h8b6s6nkn884\MyApp.winmd references the non-Windows Runtime type Platform.COMException. Windows Runtime types can reference only Windows Runtime types.
      • Type MyApp.MainPage in file C:\Program Files\WindowsApps\35310Head.MyAppName_2.1.6.12141_x86__4h8b6s6nkn884\MyApp.winmd references the non-Windows Runtime type Platform.COMException. Windows Runtime types can reference only Windows Runtime types.
    • Impact if not fixed:     Windows store doesn't allow apps that don't pass Windows Runtime Metadata Validation.  
    • How to fix:     Please ensure that the compiler you are using to generate your Windows Runtime types is up to date with with the Windows Runtime specifications

      Unfortunately I do not know how to fix this error.

    Wednesday, November 27, 2013 12:30 AM

Answers

  • Hi Charlie C. Li,

    Thanks for your valuable info, I will report it and I invite you to post it as bug on

    https://connect.microsoft.com/

    Thanks again!

    Regards!

    Xiaoliang


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    Thursday, November 28, 2013 6:35 AM
    Moderator
  • I found the reason of trouble. It is not VS's bug but a confusion error message.

    The problem is the use of Platform::COMException. I used it to detect the exception of Not Found File. Sure there were no COM DLL components. When I removed the Platform::COMException the certification was passed. 

    I have remembered that only COMException can catch the NotFoundFile exception. I do not know whether the app will be crashed when that exception happened.  

    Saturday, December 14, 2013 2:20 AM

All replies

  • Hi Charlie C. Li,

    Welcome here!

    Have you passed the Certification Kit 3.1 before you migrate your app? Both on win8 and win8.1...

    Or could it pass the Certification Kit 3.0 after you migrate your app?

    Regards!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    Wednesday, November 27, 2013 9:18 AM
    Moderator
  • I am sure it is Certification Kit 3.1 not 3.0.

    I retested in both VS2012 and VS2013. CKit3.1 VS2012 pass, VS2013 not.

    The packages compiled in VS 2012 Update 4 with 8.1 SDK installed. And app is available in Windows Store.

    Any conflict 8.1 SDK and VS2013? Before VS2013 installed, I installed 8.1 SDK.

    Wednesday, November 27, 2013 2:46 PM
  • Hi Charlie C. Li,

    Your issue is so particular that I couldn't reproduce it.

    I advise you to uninstall VS2013 and delete all related compents(contains 8.1SDK), then install VS again, SDK 8.1 should be found in VS 2013.

    For how to uninstall VS, you could refer this:

    To uninstall Visual Studio

    1. In Control Panel, on the Programs and Features page, choose the product edition that you want to uninstall, and then choose Change.

    2. In the Setup wizard, choose Uninstall, choose Yes, and then follow the remaining instructions in the wizard.

    To uninstall Visual Studio in silent or passive modes (that is, uninstall from source)

    1. On the computer where Visual Studio is installed, open the Windows command prompt.

    2. Enter the following parameters:

      DVDRoot \vs_ProductName.exe </quiet|/passive> [/norestart]

      If ERRORLEVEL 1 Echo ERRORLEVEL=%ERRORLEVEL%

    If you can't uninstall Visual Studio by using the uninstallation utility, you can perform a manual uninstallation by removing Visual Studio and then removing related components. For more information, see the Visual Studio Developer Center.

    I hope it is helpful!

    Regards!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    Thursday, November 28, 2013 2:13 AM
    Moderator
  • I click Project > MyApp Property in the Link there is an item Windows Metadata in VS2013. And the box of Generate Windows Metadata is YES. However there is no this item in VS2012. So I set the Generate Windows Metadata to NO. The Certification Kit 3.1 was PASSED!

    This is a migration bug for Win32. I can not find this in ARM and x64.

    Thursday, November 28, 2013 3:22 AM
  • Unfortunately it failed in Windows Store Certification.


    Thursday, November 28, 2013 6:23 AM
  • Hi Charlie C. Li,

    Thanks for your valuable info, I will report it and I invite you to post it as bug on

    https://connect.microsoft.com/

    Thanks again!

    Regards!

    Xiaoliang


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    Thursday, November 28, 2013 6:35 AM
    Moderator
  • I found the reason of trouble. It is not VS's bug but a confusion error message.

    The problem is the use of Platform::COMException. I used it to detect the exception of Not Found File. Sure there were no COM DLL components. When I removed the Platform::COMException the certification was passed. 

    I have remembered that only COMException can catch the NotFoundFile exception. I do not know whether the app will be crashed when that exception happened.  

    Saturday, December 14, 2013 2:20 AM