locked
Building Metro Apps for beta testing RRS feed

  • Question

  • I have created a Metro application, but I did not yet send it to Windows Store as it's still in beta. One of my friends was interested in testing my application. To install my application on hes computer I used sideloading, following the steps in this article : http://blogs.msdn.com/b/patricka/archive/2012/11/05/how-do-i-deploy-a-windows-8-app-to-another-device-for-testing.aspx . The problem is that, when a press "Y" (yes) and PowerShell   should install my app, it gives an error "The package or bundle is not signed or it's digital signature is corrupted. ". What should I do ? I sent him all the files that were generated by the Visual Studio.

    I have to mention that :

    • I'm using Windows 8.1
    • I've developed the app in Visual Studio 2013 Professional 
    • The target platform of my app is Windows 8.1 (and I have no idea how to change this)
    • My friend does not have Visual Studio installed
    • My friend uses Windows Server 2012 Datacenter (Could this be the problem ? What should I do in this case ? I'm very interested that my app to work also on Windows 8, Windows Server 2012 because this are the OS-es that are used at my office and by a majority of the people with whom I work and that could test my app before releasing it to the market. )

    EDIT : I tried to follow the steps in this article http://msdn.microsoft.com/en-us/library/windows/desktop/jj835836(v=vs.85).aspx , but my error does not appear to be listed there.

    In AppxPackagingOM > Microsoft-Windows-AppxPackaging/Operational I have the next error:  

    error 0xC00CE014: App manifest validation error: The app manifest must be valid as per schema: Line 27, Column 8, Reason: Element '{http://schemas.microsoft.com/appx/2013/manifest}VisualElements' is unexpected according to content model of parent element '{http://schemas.microsoft.com/appx/2010/manifest}Application'.Expecting: {http://schemas.microsoft.com/appx/2010/manifest}VisualElements.

    Also in AppXDeployment-Server > Microsoft-Windows-AppXDeploymentServer/Operational I have no errors.


    • Edited by ArchTM Thursday, December 26, 2013 1:57 PM
    Thursday, December 26, 2013 2:25 AM

Answers

  • You cannot run a Windows 8.1 app on Windows 8 or Windows Server 2012. You need a Windows 8 app for those OSes. To create a Windows 8 app you will need to use Visual Studio 2012 (Express will work), but you can update an existing Windows 8 app in Visual Studio 2013 Professional.

    --Rob

    • Marked as answer by ArchTM Thursday, December 26, 2013 7:32 PM
    Thursday, December 26, 2013 2:46 PM
    Moderator
  • You need separate projects targeting Windows 8 and Windows 8.1. Once the Windows 8 project has been created in VS2012 it can be maintained in Visual Studio 2013 Professional.

    Windows Server 2012 is the server version of Windows 8. Windows Server 2012 R2 is the server version of Windows 8.1.

    You shouldn't need to modify anything to run on Windows RT. A pure .Net app can be built AnyCPU and will run on arm, x86, and x64. If you have native code then you will need to build specifically for arm to run on Windows RT. There are RT versions (e.g. Surface RT) based on Windows 8 and versions (e.g. Surface 2) based on Windows 8.1

    I wouldn't recommend hand editing the manifest and project files if you aren't comfortable with the formats. You'll probably be better off creating an initial project in VS2012 so you know it's correct. That said the manifest and project files are xml-formatted text so you can open them up and look for version tags.

    --Rob

    • Marked as answer by ArchTM Thursday, December 26, 2013 7:32 PM
    Thursday, December 26, 2013 4:44 PM
    Moderator

All replies

  • You cannot run a Windows 8.1 app on Windows 8 or Windows Server 2012. You need a Windows 8 app for those OSes. To create a Windows 8 app you will need to use Visual Studio 2012 (Express will work), but you can update an existing Windows 8 app in Visual Studio 2013 Professional.

    --Rob

    • Marked as answer by ArchTM Thursday, December 26, 2013 7:32 PM
    Thursday, December 26, 2013 2:46 PM
    Moderator
  • You cannot run a Windows 8.1 app on Windows 8 or Windows Server 2012. You need a Windows 8 app for those OSes. To create a Windows 8 app you will need to use Visual Studio 2012 (Express will work), but you can update an existing Windows 8 app in Visual Studio 2013 Professional.

    --Rob

    Ok, so can I just load my project in VS 2012 and change the target platform (and how ?)  or I have to create a new project and to Copy+Paste all my code/classes/resources/assets in there ?

    Also, if I want to make my app available on the Windows Store for both W 8 and W 8.1, I will have to use a W8 version ? Won't I lose the W8.1 specifics, like the SystemMediaTransportControls (step 3http://msdn.microsoft.com/en-us/library/windows/apps/jj841209.aspx) ?

     



    • Edited by ArchTM Thursday, December 26, 2013 3:09 PM
    Thursday, December 26, 2013 3:08 PM
  • No, you cannot load a Windows 8.1 project in Visual Studio 2012 and there is no trivial way to downgrade an app. You can hand edit the manifest and project files to change the target, but you'll also need to rewrite any Windows 8.1 specific code. You cannot call Windows 8.1 specifific functions from a Windows 8 app.

    You can place both a Windows 8 and a Windows 8.1 app in the store and users will automatically get the most appropriate one for their OS.

    --Rob

    Thursday, December 26, 2013 3:22 PM
    Moderator
  • So I will need to maintain the same code for 2 apps and use two different versions of Visual Studio ? Well, that's truly very unpleasant. 

    Can't I do something like putting an IF in my program so that when my program is running on W8 to access the W8 features and when running on W8.1 to access the W8.1 specific features ? And how exactly I do that ? And what do I need to modify in the manifest so that W8.1 my app to work on W8 ?

    And just to be clear, Windows Server 2012 and Windows Server 2012 R2 will both need the Windows 8 version of the app ? And what do I need to modify so that my app can be also available on Windows RT tablets?

    I know that I have asked a lot of questions but I'm really confused and I didn't find anywhere answers to this questions. If you could explain me I would be in your debt :)

    Thursday, December 26, 2013 4:33 PM
  • You need separate projects targeting Windows 8 and Windows 8.1. Once the Windows 8 project has been created in VS2012 it can be maintained in Visual Studio 2013 Professional.

    Windows Server 2012 is the server version of Windows 8. Windows Server 2012 R2 is the server version of Windows 8.1.

    You shouldn't need to modify anything to run on Windows RT. A pure .Net app can be built AnyCPU and will run on arm, x86, and x64. If you have native code then you will need to build specifically for arm to run on Windows RT. There are RT versions (e.g. Surface RT) based on Windows 8 and versions (e.g. Surface 2) based on Windows 8.1

    I wouldn't recommend hand editing the manifest and project files if you aren't comfortable with the formats. You'll probably be better off creating an initial project in VS2012 so you know it's correct. That said the manifest and project files are xml-formatted text so you can open them up and look for version tags.

    --Rob

    • Marked as answer by ArchTM Thursday, December 26, 2013 7:32 PM
    Thursday, December 26, 2013 4:44 PM
    Moderator
  • Ok, I understand. Thank you very much. I will follow your instructions.
    • Edited by ArchTM Friday, December 27, 2013 3:19 AM
    Thursday, December 26, 2013 7:35 PM