Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

  • Aaron Stebner's WebLog

    Possible installation issues with the Windows Phone Developer Tools January 2011 Update

    • 1 Comments

    As I mentioned in a previous blog post, the Windows Phone Developer Tools January 2011 Update was released a few days ago.  Since then, I’ve heard from a few people who have reported installation issues that I wanted to describe in a bit more detail in case others run into them in the future.

    Issue 1 – Windows Phone Developer Resources patch silently exits when it is done installing

    The Windows Phone Developer Resources patch that is a part of the Windows Phone Developer Tools January 2011 Update only displays a small dialog with a progress bar during the installation process.

    The installation process can take a long time on some computers because it needs to re-generate the saved state file for the updated emulator image, and it may appear to be hung with the progress bar registering 100% complete while it does this.  You should not not try to close setup or kill it with the Task Manager during this time. 

    When the installation process completes, the small dialog with the progress bar disappears, but there is no indicator that setup is complete or that it succeeded.  You can determine whether or not this patch successfully installed by doing the following (this is copied from the January 2011 Update release notes):

    1. Go to the Programs and Features control panel (you can get to this quickly by typing appwiz.cpl in the Start menu search bar).
    2. On the left side of the Programs and Features control panel, click the link named View installed updates.
    3. If the update installed successfully, you will see Microsoft Windows Phone 7 Developer Resources - January 2011 Update in the list of installed updates.

    Issue 2 – Visual Studio patch fails on a system that has the Visual Studio 2010 SP1 beta installed

    The Visual Studio patch that is a part of the Windows Phone Developer Tools January 2011 Update will not install correctly if the computer it is being installed on has the Visual Studio 2010 SP1 beta installed.  If you have the Visual Studio 2010 SP1 beta, you will need to uninstall it and then use the following steps to restore Visual Studio 2010 before you can install the Visual Studio patch:

    1. Go to the Programs and Features control panel and uninstall the item named Microsoft Visual Studio 2010 Service Pack 1.
    2. Run setup.exe from the location that you originally installed Visual Studio 2010 from.  If you are prompted by User Account Control to elevate, click Continue.
    3. Click Change or Remove Microsoft Visual Studio 2010.
    4. Once setup finishes loading, click Next.
    5. Click Add or Remove Features.
    6. Re-check any of the features you want to repair. If the features that you want to repair are already checked, you will need to uncheck and recheck them.
    7. Click the Update button.
  • Aaron Stebner's WebLog

    Windows Phone Developer Tools January 2011 Update is now available for download

    • 0 Comments

    As announced earlier today in this post on the Windows Phone Developer Blog and in this news item on the App Hub site, the Windows Phone Developer Tools January 2011 Update is now available for download.

    How to install the update?

    The Windows Phone Developer Tools January 2011 Update consists of 2 patches that install on top of the original Windows Phone Developer Tools RTW release, so you must install all of the following items in order to fully install the update:

    You do not need to uninstall the Windows Phone Developer Tools October 2010 Update if you previously installed it.  The January 2011 Update will install over the top of it and will replace it.

    Note – in some cases, installing the patches can cause the default deployment target to change from the Windows Phone 7 Emulator to the Windows Phone 7 Device.  If that happens on your computer, you can use the steps listed in this blog post to reset the default deployment target.

    What is included in the update?

    The Windows Phone Developer Tools January 2011 Update includes an updated version of the Windows Phone 7 Emulator.  The updated emulator adds support for copy and paste functionality so that developers can test this functionality in their applications.  It also includes several bug fixes and performance enhancements.  Note that this functionality will not be available to Windows Phone 7 devices until a future update is released.

    In addition, because it is a cumulative update, this update also includes the following components that originally shipped in the Windows Phone Developer Tools October 2010 Update:

    • The Windows Phone Connect tool – this tool allows the Windows Phone Developer Tools to connect to a Windows Phone device without requiring the Zune software to be running; this allows developers to debug media playback scenarios on a device
    • The Windows Phone capability detection tool – this tool analyzes your Windows Phone game or application project and detects the capabilities that are required; this allows developers to update their WMAppManifest.xml file so they can test their game or application with the same set of capabilities that will be provided by the ingestion process
    • An updated version of the Bing Maps control

    Who should install this update?

    I encourage all developers creating applications or games for Windows Phone 7 to install this update.  It makes the process of developing, testing and submitting to the Windows Phone Marketplace more smooth, and provides emulator support for upcoming Windows Phone 7 OS functionality so you can start testing your applications and games with these changes before the OS update is released.

    In nearly all cases, applications and games that have already been released will not need to be recompiled or resubmitted to the Windows Phone Marketplace as a result of this update.  There is a specific scenario where a recompile and resubmit is encouraged – if you have pivot or panorama controls that contain text boxes, users can unintentionally change panes when trying to use the new copy and paste feature to copy text into the text box. To prevent this problem, you can install the Windows Phone Developer Tools January 2011 Update, open your application, recompile it, and then resubmit it to the Windows Phone Marketplace.

    Getting started links

    Here are some download links to help you get started with the Windows Phone Developer Tools January 2011 Update:

    Here are some documentation links to help you get started with new features:

  • Aaron Stebner's WebLog

    Confusing error when attempting to debug an XNA Game Studio 4.0 Windows Phone game in Visual C# 2010 Express

    • 1 Comments

    XNA Game Studio 4.0 supports the following editions of Visual Studio 2010:  Visual Studio 2010 Professional and better, Visual C# 2010 Express, and Visual Studio 2010 Express for Windows Phone.  However, as described in more detail in this blog post, XNA Game Studio 2010 does not support developing games for all platforms in all of these Visual Studio 2010 editions.  There is a specific unsupported scenario that gives a pretty poor error message if you try it, and I want to describe it in a little more detail here in case anyone runs into it while using XNA Game Studio 4.0.

    Description of the issue

    You can create XNA Game Studio 4.0 Windows Phone game projects in Visual Studio 2010 Professional and better or Visual Studio 2010 Express for Windows Phone, but not in Visual C# 2010 Express.   However, because the overall XNA Game Studio 4.0 project system supports Visual C# 2010 Express, you can open XNA Game Studio 4.0 Windows Phone game projects that were created elsewhere in Visual C# 2010 Express.  If you do this, you can edit the phone game projects and build them with no errors.  If you attempt to press F5 to deploy and debug a phone game, you will see an error like the following:

    Unable to start debugging.

    An error occurred that usually indicates a corrupt installation (code 0x80040154). If the problem persists, repair your Visual Studio installation via 'Add or Remove Programs' in Control Panel.

    Repairing Visual C# 2010 Express will not help in this scenario.  There are certain components that are required for Windows Phone development that are only available in Visual Studio 2010 Professional and better or Visual Studio 2010 Express for Windows Phone, and as a result, you cannot deploy or debug Windows Phone game projects in Visual C# 2010 Express.

    How to work around this issue

    If you run into the above error, you will need to open your Windows Phone game project (.csproj) file in one of the supported Visual Studio 2010 editions and deploy and debug it from there instead.

    A note about Silverlight Windows Phone projects

    One other note about this scenario – if you attempt to open a Silverlight Windows Phone application project that was created elsewhere in Visual C# 2010 Express, you will see an error like the following and will not even be allowed to open it:

    error : The project file 'C:\Users\myuser\Documents\Visual Studio 2010\Projects\WindowsPhoneApplication1\WindowsPhoneApplication1\WindowsPhoneApplication1.csproj' cannot be opened.

    The project type is not supported by this installation.

    This message error is more clear, and it prevents you from being able to edit or build the project as well, which helps reinforce the lack of support for Visual C# 2010 Express in a way that XNA Game Studio 4.0 does not.  The reason that Silverlight projects are able to present more clear errors in this type of scenario is that the Silverlight Windows Phone project system does not support Visual C# 2010 Express at all, whereas the XNA Game Studio 4.0 project system supports Visual C# 2010 Express, but not for all types of game projects.

  • Aaron Stebner's WebLog

    WiX v3.5 has released

    • 0 Comments

    Rob Mensching posted an item on his blog today declaring WiX v3.5 complete.  The final build number is 3.5.2519.0 and it can be downloaded from http://wix.codeplex.com/releases/view/60102.

    Here are a few brief highlights of what is included in WiX v3.5:

    • Votive support for Visual Studio 2010
    • IIS7 custom actions
    • Bug fixes to the core toolset
    • Simplifications for common setup authoring tasks (such as major upgrades and simpler component authoring)
    • Adding patch UI dialogs to WixUI and adding several new localized WixUI languages
  • Aaron Stebner's WebLog

    This is the last week that you can submit an Xbox LIVE Indie Game created with XNA Game Studio 3.1

    • 0 Comments

    As noted on the XNA Game Studio team blog and this App Hub news item, the deadline for submitting Xbox LIVE Indie Games created with XNA Game Studio 3.1 to play-testing or peer review is only one week away.  Here are the key things to keep in mind:

    • Starting at 12am PST on February 8, 2011, you will no longer be able to submit Xbox LIVE Indie Games created with XNA Game Studio 3.1 for play-testing or peer review, and instead you must use XNA Game Studio 4.0.  This includes updates to previously published games.
    • If your game is in peer review by 12am PST on February 8, 2011, it will be allowed to complete the peer review process.  If it passes peer review, it will be published to the Xbox LIVE Indie Games marketplace.  If it fails peer review, you will have to upgrade it to XNA Game Studio 4.0 before you will be able to re-submit it.
    • If you have previously published an XNA Game Studio 3.0 or 3.1 game to the Xbox LIVE Indie Games marketplace, it will continue to work correctly.  You do not have to upgrade it to XNA Game Studio 4.0 unless you plan to release an update after 12am PST on February 8, 2011.
    • You can still deploy and debug XNA Game Studio 3.1 games on your Xbox 360 console using XNA Game Studio Connect after 12am PST on February 8, 2011.  This deadline only impacts 3.1 games that you plan to submit for play-testing or peer review.
  • Aaron Stebner's WebLog

    Likely final build of WiX v3.5 is now available to download

    • 0 Comments

    Rob Mensching announced on his blog yesterday that the build that is likely to be the final build of WiX v3.5 is now available to download.  The v3.5.2519 build contains a couple of targeted fixes for bugs reported since the 2nd escrow build was declared in December, and it will be the final build of WiX v3.5 if no ship-stopping bugs are found.

    If you are using WiX to create Windows Installer packages for your products, I strongly encourage you to upgrade to this build of WiX v3.5 and help the WiX virtual team validate that this build is ready to be declared the final WiX v3.5 build.  Here are a couple of links to help get you started:

  • Aaron Stebner's WebLog

    Link to XNA Game Studio 4.0 book written by 2 of my co-workers

    • 0 Comments

    I’m a little late posting this information since the book was released at the end of December, 2010, but my co-workers Tom Miller and Dean Johnson wrote a book titled XNA Game Studio 4.0 Programming: Developing for Windows Phone 7 and Xbox 360, and one of my other co-workers, Shawn Hargreaves, wrote the foreword for the book.

    You can find more information about the book at the following locations:

    I got a copy of this book last week, and now I need to remember to go find Tom, Dean and Shawn and get them to autograph it.

  • Aaron Stebner's WebLog

    Link to a guide to help fix breaking changes after upgrading a game from XNA Game Studio 3.1 to 4.0

    • 0 Comments

    XNA Game Studio 4.0 and the XNA Framework 4.0 introduced several breaking API changes.  They are described at a high-level in the documentation and some of them are described in more detail on Shawn Hargreaves’ blog.  These breaking changes present challenges to developers when they try to upgrade their games from XNA Game Studio 3.0 or 3.1 to 4.0.  XNA Game Studio 4.0 includes a built-in upgrade wizard that will upgrade 3.0 and 3.1 projects to 4.0, but the upgrade process only updates meta-data in the project files (such as .csproj and .contentproj).  Like the upgrade wizards for other Visual Studio project types, it does not attempt to make any changes to the code in the projects.  This is because it can be difficult to reliably tell what the intent is of a given piece of code, and in many cases there are multiple options that could be valid solutions for breaking changes.

    Fortunately, someone recently posted a cheat sheet with more details to help map compile errors that can occur after upgrading a 3.0 or 3.1 game to 4.0 to the options that you have to update your code so it will compile successfully with 4.0.  If you are running into any issues fixing your game to react to breaking changes in XNA Game Studio 4.0, I encourage you to take a look at the cheat sheet at http://www.nelxon.com/blog/xna-3-1-to-xna-4-0-cheatsheet/.

  • Aaron Stebner's WebLog

    Possible issue where .NET Framework 4 setup reports success but fails to update mscoree.dll behind the scenes

    • 13 Comments

    I have heard from a few customers since the release of the .NET Framework 4 who have installed the .NET Framework 4 on Windows Vista or higher and setup reported success, but they see an error when running the .NET Framework setup verification tool.  I wanted to describe this scenario in a bit more detail, including how to diagnose whether or not your computer is running into this issue based on the setup log files.

    How to quickly tell if this blog post might apply to you

    Before reading this whole post, here is a quick way you can check whether or not you are likely to be encountering the issue described below:

    1. Your OS was Windows Vista, Windows Server 2008 or Windows 7.  This particular issue does not affect Windows XP or Windows Server 2003.
    2. You installed the .NET Framework 4 and setup reported success, but you cannot use .NET Framework 4 applications on your computer afterwards.
    3. The file %windir%\system32\mscoree.dll and/or %windir%\syswow64\mscoree.dll has a file version of 2.0.* instead of 4.0.* (and you have rebooted your computer after installing the .NET Framework 4 to make sure that any files that were in use during installation have had a chance to be updated).

    Symptoms of the problem

    In the cases I’ve seen so far, the .NET Framework setup verification tool reported an error like the following when it tried to run a .NET Framework test application that is bundled with it:

    ****ERROR**** Process 'Netfx40TestApplication.exe' exited with return code -2146232576

    This return code translates to 0x800131700, which is a .NET Framework common language runtime (CLR) error code that means “Failed to load the runtime.”  In other words, this return code means that this version of the .NET Framework runtime failed to load at all on this computer.

    Further investigation on the computers that exhibited this behavior showed that the file mscoree.dll (which is located in %windir%\system32 and/or %windir%\syswow64) had a version number of 2.0.*.  This file is shared by all versions of the .NET Framework, and it should always have a version of at least 4.0.* after installing the .NET Framework 4.  If this file is not updated to version 4.0.*, the CLR loader will be unable to load the .NET Framework 4, and it will cause the type of failure in the .NET Framework verification tool that I described above.

    Gathering more detailed information from .NET Framework setup log files

    I wasn’t sure how a computer could be in a state where .NET Framework 4 setup reported a successful installation but yet mscoree.dll was still versioned 2.0.*.  I had the customers use the instructions in this blog post to gather their .NET Framework setup log files, and I started looking at the logs to narrow this issue down further.

    In the cases I’ve seen so far, I found an error like the following in the log file named Microsoft .NET Framework 4 Setup_*.html:

    Exe (C:\Users\myusername\AppData\Local\Temp\Microsoft .NET Framework 4 Setup_4.0.30319\Windows6.1-KB958488-v6001-x64.msu) failed with 0x80240017 - (null).

    The .msu file listed in the above error message is one of the ones that are responsible for updating mscoree.dll to version 4.0.* on Windows Vista and later versions of Windows.  Return code 0x80240017 means that the .msu file is not applicable on the computer it is being installed on.  This type of return code can occur for several different reasons:

    1. The .msu is for an earlier or later OS version or service pack level than what is currently on the computer
    2. The .msu is for a different processor architecture than the OS running on the computer
    3. The .msu is already installed
    4. The OS update installation engine is in a broken state that prevents the installation of any OS updates (.msu files)
    5. The OS is a pre-release version of Windows Vista, Windows Server 2008 or Windows 7.  See this blog post for more details about this case.

    .NET Framework 4 setup prevents cases #1 and #2 from happening behind the scenes, but it cannot prevent cases #3, #4 or #5.  To complicate things further, it is not possible to reliably distinguish from this return code which of the cases is the actual cause of the return code.  Even worse, case #3 is a case that should be treated the same as a successful installation of this .msu as opposed to a failure.

    As a result, the .NET Framework 4 setup ignores this error and treats it as a successful installation of this .msu (case #3).  This is why you will see information like the following later in the log file:

    Error 0x80240017 is mapped to Custom Error: Success

    Narrowing down the root cause based on the log files

    Because mscoree.dll was not updated like it should have been on the affected computers, I made an educated guess that the customers who contacted me were running into case #4 on their computers.  I was able to confirm this in the following ways:

    1. Looking at the log files named %windir%\WindowsUpdate.log and %windir%\logs\cbs\cbs.log (both of which are collected by the log collection tool linked above).  In the cases I’ve seen so far, one or both of these logs showed errors while trying to evaluate applicability and/or install OS updates.  These errors affected the .NET Framework 4 .msu file as well as other OS updates that the customer had attempted to install.
    2. Trying to manually install an OS update from Windows Update or by downloading it and running it directly.  In the cases I’ve seen so far, attempting to install any OS update failed just like the .NET Framework 4 .msu file failed.

    Possible solutions for this type of error

    1. In some cases, it can help to run SFC to repair the files that are installed as a part of Windows.  You can find steps that explain how to do this in this knowledge base article.

    2. If SFC does not help, the System Update Readiness Tool might help repair the computer so that OS updates will install again.  I’ve posted a set of steps I’ve had success using with this tool in some cases in the past in this blog post.

    3. Peter Marcu has posted a few additional suggestions on his blog for this type of issue as well.

    4. Unfortunately, if the above suggestions do not help, the only other way that I've found to solve this type of OS update installation error is to repair Windows. 

    <update date="12/30/2010"> Added a note about pre-release versions of Windows causing this error as well. </update>

    <update date="7/27/2011"> Added a note about using SFC to repair Windows files, as suggested in Peter Marcu's blog. </update>

    <update date="11/8/2011"> Added a direct link to Peter Marcu's blog post about this issue. </update>

    <update date="6/6/2012"> Fixed broken link in the "Gathering more detailed information" section. </update>

     

  • Aaron Stebner's WebLog

    Mailbag: Should I re-install the versions of the .NET Framework in a specific order?

    • 21 Comments

    Question:

    I used the instructions and the cleanup tool in this blog post to remove all versions of the .NET Framework from my computer, and now I want to re-install them.  Do I need to re-install them in any specific order?

    Answer:

    In general, the versions of the .NET Framework allow you to install in any order you choose.  However, I recommend installing in reverse order from newest to oldest, like this:

    1. .NET Framework 4
    2. .NET Framework 3.5 SP1 (this will install the .NET Framework 2.0 SP2 and 3.0 SP2 behind the scenes so you do not have to install them separately)
    3. .NET Framework 1.1 (if you have any programs installed that need it, this blog post can help you decide whether or not you need it)

    Most programs do not specifically require the .NET Framework 1.0 so I didn't list it above.  If you do need the .NET Framework 1.0, you will have to install it before installing the .NET Framework 4 because .NET Framework 4 setup blocks future installation attempts for the .NET Framework 1.0.  If you need the .NET Framework 1.0, I recommend installing in this order:

    1. .NET Framework 3.5 SP1 (this will install the .NET Framework 2.0 SP2 and 3.0 SP2 behind the scenes so you do not have to install them separately)
    2. .NET Framework 1.1 (if you have any programs installed that need it, this blog post can help you decide whether or not you need it)
    3. .NET Framework 1.0 (if you have any programs installed that need it, this blog post can help you decide whether or not you need it)
    4. .NET Framework 4

    Even though it is a little counter-intuitive, there are a couple of reasons that I recommend installing in reverse order:

    • To help avoid some possible setup bugs in older versions of the .NET Framework – there are a couple of setup bugs (like this and this) in older versions of the .NET Framework that are fixed in service packs and later versions.  Installing a later version of the .NET Framework first will update some files that are shared by all versions of the .NET Framework, and that will allow you to avoid these bugs when installing older versions of the .NET Framework.
    • To minimize the number of separate downloads and installs – if you install the .NET Framework 3.5 SP1 first, it will automatically install the .NET Framework 2.0 SP2 and 3.0 SP2 for you, so you don’t need to install them separately.  Also, if you install older versions of the .NET Framework 2.0 and 3.0 before installing the .NET Framework 3.5 SP1, the 3.5 SP1 installer will automatically uninstall them as a part of its install process.  That means you will just end up wasting time if you install the .NET Framework 2.0 and 3.0 before installing the .NET Framework 3.5 SP1.

    <update date="1/31/2011"> Added a separate set of installation instructions for cases where the .NET Framework 1.0 is required because .NET Framework 4 setup prevents the .NET Framework 1.0 from being installed after it. </update>

     

  • Aaron Stebner's WebLog

    Link to information about using isolated storage APIs in an XNA Game Studio Windows game

    • 0 Comments

    My colleague Shawn Hargreaves wrote a helpful blog post last week that gives more detailed information about how to use isolated storage APIs in an XNA Game Studio Windows game.  It includes some settings that you can change in the Visual Studio IDE so that you can use the GetUserStoreForApplication API during debugging without needing to deploy your game using ClickOnce.

    If you are using isolated storage APIs in a Windows game, I strongly encourage you to check out Shawn’s post at http://blogs.msdn.com/b/shawnhar/archive/2010/12/16/isolated-storage-windows-and-clickonce.aspx for more information to help you during development and debugging of your game.

  • Aaron Stebner's WebLog

    Link to a tool to simplify the process of localizing the title of a Windows Phone game

    • 0 Comments

    A little while ago, I wrote a blog post with a list of steps that you can use to create native resource DLLs so that you can localize the title of your Windows Phone game created with XNA Game Studio 4.0.  Today, I found a blog post about a tool that automates the process of creating these native resource DLLs.  This tool provides 2 really nice benefits:

    1. It eliminates the requirement that you have to build your game from an edition of Visual Studio 2010 that supports both C# and C++ development (the VS 2010 Professional or better editions).  In other words, this allows you to build a game with a localized title in the free Visual Studio 2010 Express for Windows Phone edition.
    2. It greatly simplifies the number and complexity of the steps required to enable title localization for your game.

    You can find the tool in this blog post.  Here is a set of steps that use this tool that you can use in place of the ones I posted in my earlier blog post to enable title localization for your Windows Phone game created with XNA Game Studio 4.0:

    Step 0 – Create a Windows Phone game project

    1. Start Visual Studio 2010 or Visual Studio 2010 Express for Windows Phone.
    2. Click on File | New | Project..., select Visual C# | XNA Game Studio 4.0 and choose Windows Phone Game (4.0).

    Step 1 – Create native resource DLLs using the Windows Phone 7 Title Localizer tool

    1. Download the Windows Phone 7 Title Localizer tool from the link at the end of the blog post at http://patrickgetzmann.wordpress.com/wp7-localize/.
    2. Run the Windows Phone 7 Title Localizer tool.
    3. Enter your language-neutral title strings.
    4. Enter your translated title strings or use the Translate button in the tool to automatically translate the strings using the Bing translator engine.
    5. Click the Save DLLs button to create native resource DLLs that contain the strings you have provided.

    Step 2 – Add native resource DLLs to your Windows Phone game project

    Note - the name of the native resource DLL is important in this scenario.  It must be named AppResLib.dll, and the localized versions must be named AppResLib.dll.*.mui.  If they are named differently, your game will be rejected by the Windows Phone Marketplace certification process.

    1. Right-click on your Windows Phone game project in the Visual Studio solution explorer, click Add | Existing Item...
    2. Browse to the folder that you saved the DLLs to in step 2 above, select the file named AppResLib.dll, then click the Add button.
    3. Select each of the files named AppResLib.dll.*.mui in the same folder, then click the Add button.
    4. For each of the AppResLib.dll* files that you have added to your Windows Phone game project, set the Build Action property to None and the Copy to Output Directory property to Copy if newer.  This will make sure that each of these files gets packaged into the XAP file that is created when you build your Windows Phone Game project.

    Step 3 – Update your Windows Phone game to load title strings from the resource DLLs

    Update the application title by doing the following:

    1. In your Windows Phone Game project, open the file Properties\AssemblyInfo.cs.
    2. Remove the AssemblyTitle entry.
    3. Add an AssemblyTitleAttribute entry that looks like this:

      [assembly: AssemblyTitleAttribute("@AppResLib.dll,-100")]

    Update the tile title by doing the following:

    1. Right-click on your Windows Phone Game project in the Visual Studio solution explorer and choose Properties.
    2. Click on the XNA Game Studio tab.
    3. Change the Tile title value to look like this:

      @AppResLib.dll,-200

    The tile title is the name that is displayed if you click and hold on your application/game in the Windows Phone OS and choose to pin it to the start menu.  There is some additional information about these properties and how to configure them in XNA Game Studio games in this documentation topic.  Depending on the scenarios you want to support for your game, it may not be necessary to create separate strings for your application title and tile title.  If you plan to use the same string for both, you do not need to create separate entries in the string table in each of your native resource DLLs in the instructions above.

    Step 4 – Rebuild your Windows Phone game solution

    Rebuild the solution that contains your Windows Phone Game project.

    <update date="1/18/2011"> Added a warning about the naming of the DLL needing to exactly match what is listed in the documentation. </update>

     

  • Aaron Stebner's WebLog

    WiX v3.5 escrow build is now available to download

    • 3 Comments

    Rob Mensching announced on his blog last week that WiX v3.5 is now in escrow mode, which means that there were zero active bugs when the v3.5.2325 build was produced, and the final release of WiX v3.5 will be happening very soon.  If no showstopper bugs are found and fixed, this build will be the final build of WiX v3.5.

    If you are using WiX to create Windows Installer packages for your products, I strongly encourage you to upgrade to this build of WiX v3.5 and help the WiX virtual team validate that this build is ready to be declared the final WiX v3.5 build.  Here are a couple of links to help get you started:

  • Aaron Stebner's WebLog

    Steps I use to narrow down the root cause of an XNA Game Studio setup failure

    • 0 Comments

    Earlier this week, a co-worker ran into an error while installing XNA Game Studio on his computer, and he asked me for help figuring out what caused the problem.  I realized that I follow essentially the same set of steps to narrow down the root cause every time I run into an XNA Game Studio setup problem.  I want to post these steps on my blog to try to help teach people how to identify root causes and hopefully help solve XNA Game Studio setup problems on their own instead of always needing to rely on a setup expert to analyze and interpret their log files.

    Here are the steps I use to narrow down the root cause of an XNA Game Studio setup failure:

    1. Go to the folder that contains the log files for the version of XNA Game Studio that you are trying to install.  See the list at the end of this blog post for the setup log file locations for each version of XNA Game Studio.
    2. Sort the folder by last modified date.
    3. Open the most recent file named GameStudioSetup-*.log in a text editor such as Notepad.
    4. Search for the string Bootstrapper.exe error.
    5. Most of the time, this will lead you to an error occurring while installing one of the MSIs chained in by XNA Game Studio setup, and the error will list a log file that contains more detailed information about the cause of the error.  For example:

      Bootstrapper.exe Error: 0 : In Task InstallPlatformTools: MSI Task Processor Failed on task: Installing XNA Game Studio Platform Tools \n Please consult C:\Users\myusername\AppData\Local\Temp\XNA Game Studio 4.0 Setup\Logs\xnags_platform_tools-20101025.180123.LOG for additional log information.

    6. Open the log file listed in the error message in step 5, search for the string return value 3 and try to narrow down the failure further from there.

    You can see a specific example of this technique in this blog post about troubleshooting XnaLiveProxy installation problems.

    The above steps will not work for 100% of all possible XNA Game Studio setup failures, but based on my past experience, they will work in most cases.  Finding the root cause is only the first step, and the steps you need to take to solve a setup problem will vary depending on what the root cause is.  I’ve found that some setup problems have solutions that are pretty self-explanatory once you know what the root cause is though, so hopefully the above steps will help some people be able to more quickly diagnose and solve XNA Game Studio installation problems.

    As always, if you run into a problem that you are unsure of the resolution for or if you have trouble interpreting the information in the XNA Game Studio setup log files, please post a comment on the App Hub forums and/or contact me.  When posting on the forums, please zip your XNA Game Studio setup log files, upload the zip file to a file server (such as http://skydrive.live.com) and include a link to the log files in your post to allow us to investigate and offer workarounds more quickly.

    XNA Game Studio setup log file locations

    XNA Game Studio setup creates setup log files at the following locations:

    • XNA Game Studio 2.0 - %ProgramFiles%\Microsoft XNA\XNA Game Studio\v2.0\Setup\Logs
    • XNA Game Studio 3.0 - %temp%\XNA Game Studio 3.0 Setup\Logs
    • XNA Game Studio 3.1 - %temp%\XNA Game Studio 3.1 Setup\Logs
    • XNA Game Studio 4.0 - %temp%\XNA Game Studio 4.0 Setup\Logs
  • Aaron Stebner's WebLog

    Xbox LIVE Indie Games pipeline is now accepting XNA Game Studio 4.0 games

    • 0 Comments

    As noted on the XNA Game Studio team blog today, the Xbox LIVE Indie Games publishing pipeline is now accepting XNA Game Studio 4.0 games in addition to XNA Game Studio 3.1 games.  This was originally scheduled to be enabled last Friday, but it slipped out a few days due to a couple of last minute issues that we ran into at the end of last week.  As a result, the 90 day window when you will still be able to submit XNA Game Studio 3.1 games has been moved out accordingly.  The last day you will be able to submit an XNA Game Studio 3.1 game for Xbox LIVE Indie Games is Monday, February 7, 2011.

    Please see the following locations for more information about supported versions of XNA Game Studio for Xbox LIVE Indie Games and Xbox 360:

  • Aaron Stebner's WebLog

    Steps to install XNA Game Studio 4.0 without using the setup bootstrapper

    • 27 Comments

    A while back, I wrote a blog post describing how to extract the contents of the XNA Game Studio 2.0, 3.0 and 3.1 setup packages and install the components manually in case the normal installation process fails.  I just went back and updated that blog post to also list the steps for extracting and manually installing XNA Game Studio 4.0.

    I’ve gone back and forth about whether or not to update this type of older blog posts in place as new product versions are released or post new ones.  In this case, I decided to update the existing post since I can then have a single location to point people to for all versions of XNA Game Studio.  However, I also wanted to post a new item about this to help improve visibility since I’m not sure how often folks go back and look at older content.

    Here is a copy of the steps I added for XNA Game Studio 4.0.  Note - for the instructions below, if you are running a 64-bit version of Windows, you will need to use %programfiles(x86)% instead of %programfiles% for the installation paths.

    Please refer to the previous post for instructions for all versions of XNA Game Studio.

    To manually install XNA Game Studio 4.0 

    1. Download xnags40_setup.exe and save it to your hard drive
    2. Run xnags40_setup.exe /x to extract the contents to a folder of your choosing
    3. Go to the folder you extracted to in step 2 and run the MSI named redists.msi

      Note: This MSI will only display a small progress bar while it is installing and will not tell you when it is done.  When the progress bar disappears, continue to the next step.

    4. Run the MSI at %ProgramFiles%\Microsoft XNA\XNA Game Studio\v4.0\Setup\XLiveRedist.msi
    5. Run the MSI at %ProgramFiles%\Microsoft XNA\XNA Game Studio\v4.0\Redist\XNA FX Redist\xnafx40_redist.msi
    6. Run the MSI at %ProgramFiles%\Microsoft XNA\XNA Game Studio\v4.0\Setup\xnaliveproxy.msi
    7. Run the MSI at %ProgramFiles%\Microsoft XNA\XNA Game Studio\v4.0\Setup\xnags_platform_tools.msi
    8. Run the MSI at %ProgramFiles%\Microsoft XNA\XNA Game Studio\v4.0\Setup\xnags_shared.msi
    9. Run the MSI at %ProgramFiles%\Microsoft XNA\XNA Game Studio\v4.0\Setup\xnags_visualstudio.msi
    10. Go to the folder you extracted to in step 2 and run the MSI named arpentry.msi

    <update date="11/8/2010"> Added a note about the %programfiles(x86)% path on 64-bit versions of Windows. </update>

    <update date="11/21/2011"> Removed an incorrect step from the list. </update>

     

  • Aaron Stebner's WebLog

    Xbox LIVE Indie Games pipeline will start accepting XNA Game Studio 4.0 games at the end of this week

    • 0 Comments

    Last month, there was an item posted on the XNA Game Studio team blog with a rough timeline for when to expect the final release of the 4.0 version of XNA Game Studio Connect and the opening of the Xbox LIVE Indie Games publishing pipeline for 4.0 games.  Today, the exact release dates were announced in this new post on the XNA Game Studio team blog and in this news item on the App Hub site.  Here is a summary of the key information announced there:

    • The final 4.0 version of XNA Game Studio Connect is scheduled to release on Friday, November 5, 2010.  It will support deploying, debugging and running games created with XNA Game Studio 3.1 and 4.0, but will no longer support games created with XNA Game Studio 2.0 or 3.0.
    • You can start submitting Xbox LIVE Indie games created with XNA Game Studio 4.0 for play-testing and peer review as soon as the final 4.0 version of XNA Game Studio Connect is released on Friday, November 5, 2010
    • You can continue to submit Xbox LIVE Indie games created with XNA Game Studio 3.1 for 90 days after the final 4.0 release.  That means that the last day that 3.1 games will be accepted for play-testing and peer review is Thursday, February 3, 2011

    Stay tuned to the App Hub site on Friday, November 5, 2010 for the official announcement that the Xbox LIVE Indie Games publishing pipeline is open for 4.0 games.  There will also be reminders over the next 90 days as the end of the window to submit games created with XNA Game Studio 3.1 approaches.

  • Aaron Stebner's WebLog

    Windows Phone Developer Tools October 2010 Update is now available for download

    • 0 Comments

    As announced earlier this week in this post on the Windows Phone Developer Blog, the Windows Phone Developer Tools October 2010 Update is now available for download.  This update is a patch, so you must install the Windows Phone Developer Tools before you will be able to install the update.

    This update includes the following components:

    • The Windows Phone Connect tool – this tool allows the Windows Phone Developer Tools to connect to a Windows Phone device without requiring the Zune software to be running; this allows developers to debug media playback scenarios on a device
    • The Windows Phone capability detection tool – this tool analyzes your Windows Phone game or application project and detects the capabilities that are required; this allows developers to update their WMAppManifest.xml file so they can test their game or application with the same set of capabilities that will be provided by the ingestion process
    • An updated version of the Bing Maps control

    Here are some links to help you get started with the Windows Phone Developer Tools October 2010 Update:

  • Aaron Stebner's WebLog

    XNA Game Studio 4.0 Japanese language pack now available for download

    • 0 Comments

    At the end of last week, the XNA Game Studio team released the XNA Game Studio 4.0 Japanese language pack.  I wanted to provide some more information about this language pack and some download links to help you get started.  My colleague Yuichi Ito has also posted an introduction to the XNA Game Studio 4.0 Japanese language pack in Japanese on his blog at http://blogs.msdn.com/b/ito/archive/2010/10/21/xna-game-studio-4-0-language-pack-released.aspx.

    XNA Game Studio 4.0 Japanese language pack links

    Here are some links to help you get started if you want to use the XNA Game Studio 4.0 Japanese language pack:

    How to install the XNA Game Studio 4.0 Japanese language pack

    You must first install XNA Game Studio 4.0 before installing the Japanese language pack.  You can install XNA Game Studio 4.0 by using one of the following installers:

    • Windows Phone Developer Tools – this will allow you to develop games for Windows, Xbox 360 and Windows Phone 7.  The Windows Phone Developer Tools is currently only available in English, French, Italian, German, and Spanish.
    • XNA Game Studio 4.0 standalone installer – this will allow you to develop games for Windows and Xbox 360.  You must install a compatible version of Visual Studio 2010 (Visual C# 2010 Express or Visual Studio 2010 Professional or better) before installing the standalone version of XNA Game Studio 4.0.

    What is included in the XNA Game Studio 4.0 Japanese language pack

    The XNA Game Studio 4.0 Japanese language pack provides localized versions of the following XNA Game Studio 4.0 components:

    • UI components in the Visual Studio IDE that are installed by XNA Game Studio 4.0 including menu items, toolbars, property pages
    • XNA Game Studio 4.0 project templates and item templates
    • IntelliSense comments for XNA Framework APIs
    • XNA Game Studio 4.0 documentation
    • XNA Game Studio Device Manager
    • MSBuild tasks and targets
  • Aaron Stebner's WebLog

    Mailbag: How to perform a silent install of the Visual C++ 2010 redistributable packages

    • 45 Comments

    Question:

    You previously posted lists of command line switches to perform silent and unattended installations of the Visual C++ 2005 redistributable and the Visual C++ 2008 redistributable.  How can I perform silent and unattended installations of the Visual C++ 2010 redistributable?

    Answer:

    The Visual C++ 2010 redistributable packages (vcredist_x86.exe, vcredist_x64.exe and vcredist_ia64.exe) support the following command line installation options.

    The examples below use the file named vcredist_x86.exe, but you can substitute the x64 or ia64 versions of the EXEs with equivalent command lines to achieve the same behavior for them as well.

    Silent install

    This option will suppress all UI and perform an install.

    <full path>\vcredist_x86.exe /q /norestart

    For example, if you download vcredist_x86.exe to a folder named c:\vc2010redist, then the command line would look like this:

    c:\vc2010redist\vcredist_x86.exe /q /norestart

    Unattended install

    This option will display a progress dialog (but requires no user interaction) and perform an install.

    <full path>\vcredist_x86.exe /passive /norestart

    For example, if you download vcredist_x86.exe to a folder named c:\vc2010redist, then the command line would look like this:

    c:\vc2010redist\vcredist_x86.exe /passive /norestart

    Silent repair

    This option will suppress all UI and perform a repair.

    <full path>\vcredist_x86.exe /q /repair /norestart

    For example, if you download vcredist_x86.exe to a folder named c:\vc2010redist, then the command line would look like this:

    c:\vc2010redist\vcredist_x86.exe /q /repair /norestart

    Silent uninstall

    This option will suppress all UI and perform an uninstall.

    <full path>\vcredist_x86.exe /q /uninstall /norestart

    For example, if you download vcredist_x86.exe to a folder named c:\vc2010redist, then the command line would look like this:

    c:\vc2010redist\vcredist_x86.exe /q /uninstall /norestart

    A note about reboots

    All of the examples above use the /norestart switch to suppress reboots after the setup process completes.  The /norestart switch does not eliminate the need to reboot entirely – it just gives the calling process control over when to schedule the reboot if one is needed due to files being in use during setup.  If you run the Visual C++ 2010 redistributable setup and use the /norestart switch, you must check the exit code returned by the setup process and handle it accordingly in the calling process.  Here are the possible exit codes:

    • Exit code 0 means that setup succeeded and no reboot is needed.
    • Exit code 3010 means that setup succeeded and a reboot is needed to complete installation.
    • Any other exit code means that setup failed.

    Related link

  • Aaron Stebner's WebLog

    French, German, Italian and Spanish versions of Windows Phone Developer Tools now available for download

    • 0 Comments

    At the end of last week, the French, German, Italian and Spanish versions of the Windows Phone Developer Tools were released.  These versions of WPDT contain localized versions of the developer tools (including XNA Game Studio 4.0 components) and the Windows Phone Emulator.  You can only install one language of the Windows Phone Developer Tools on a computer at a time, so if you already have the English version installed and want to use one of these localized versions, you will need to uninstall the English version first.

    Here are links that you can use to download and get started using each language version of the Windows Phone Developer Tools.

    French Windows Phone Developer Tools links

    German Windows Phone Developer Tools links

    Italian Windows Phone Developer Tools links

    Spanish Windows Phone Developer Tools links

  • Aaron Stebner's WebLog

    Link to more information about support for XNA Game Studio 4.0 in the Xbox LIVE Indie Games publishing pipeline

    • 0 Comments

    There was an item posted on the XNA Game Studio team blog today that I wanted to link to in order to raise visibility because it helps answer some questions that have been asked frequently since XNA Game Studio 4.0 shipped last month.  The post is located at http://blogs.msdn.com/b/xna/archive/2010/10/12/xna-game-studio-4-0-submissions-for-xbox-live-indie-games.aspx, and it provides more detail about the timeframe when the Xbox LIVE Indie Games submission pipeline will start accepting games created with XNA Game Studio 4.0 and when it will stop accepting games created with XNA Game Studio 3.1.

    Here is a summary of the information in that post:

    • Today, the Xbox LIVE Indie Games pipeline only accepts XNA Game Studio 3.1 games for play-testing, peer review and publishing.
    • The final version of XNA Game Studio Connect for XNA Game Studio 4.0 will be released later this year.
    • When it is released, the Xbox LIVE Indie Games pipeline will start accepting XNA Game Studio 4.0 games.
    • There will be a 90 day window where the Xbox LIVE Indie Games pipeline will accept both XNA Game Studio 3.1 and 4.0 games.
    • After the 90 days are up, the Xbox LIVE Indie Games pipeline will only accept XNA Game Studio 4.0 games.

    If you are just getting started with an Xbox 360 game using XNA Game Studio or have a game in progress that you do not plan to be ready to publish on Xbox LIVE Indie Games by the end of this year, then we recommend starting with XNA Game Studio 4.0 or porting your game to XNA Game Studio 4.0 to prepare for the above changes to the Xbox LIVE Indie Game pipeline.

    As always, stay tuned to the XNA Game Studio team blog and the App Hub site for future announcements about the final release date for XNA Game Studio Connect for XNA Game Studio 4.0 and the opening of the Xbox LIVE Indie Games pipeline for XNA Game Studio 4.0 games.

  • Aaron Stebner's WebLog

    How to localize the title of a Windows Phone game created with XNA Game Studio 4.0

    • 0 Comments

    Note - there is now a simpler set of steps to create a game with a localized title, and I have written a newer blog post with updated steps.  Please refer to http://blogs.msdn.com/b/astebner/archive/2010/12/10/10103522.aspx for more details.

    Recently, a user posted a question on the XNA forums asking how to localize the name of their Windows Phone game.  They were attempting to follow the How to: Localize an Application Title for Windows Phone tutorial in the Windows Phone documentation, but were running into some issues.  That tutorial contains instructions for localizing the title of a Silverlight application, but the steps are a bit different for XNA games.  I also found some of the steps to be vague and/or confusing while I tried to work through them on my own.

    I’ve created an updated set of steps that can be used to localize the name of a Windows Phone game created with XNA Game Studio 4.0.  I also uploaded a sample solution that implements these steps.

    The steps below and the sample solution that I have created both require that you use Visual Studio 2010 Professional, Premium or Ultimate because the steps require a version of Visual Studio that supports creating a solution that contains both C++ and C# projects.  The VS 2010 Express Editions do not support this.

    Step 0 – Create a Windows Phone game project

    1. Start Visual Studio 2010.
    2. Click on File | New | Project..., select Visual C# | XNA Game Studio 4.0 and choose Windows Phone Game (4.0).

    Step 1 – Create a language-neutral native resource DLL

    Note - the name of the native resource DLL is important in this scenario.  It must be named AppResLib.dll, and the localized versions must be named AppResLib.dll.*.mui.  If they are named differently, your game will be rejected by the Windows Phone Marketplace certification process. 

    1. Right-click on the solution that contains your Windows Phone Game project and choose Add | New Project...
    2. Select Visual C++ | Win32 | Win32 Project and name it AppResLib.
    3. In the Win32 Application Wizard, select DLL and check the Empty Project check box, then click Finish.
    4. Right-click on the AppResLib project in the Visual Studio solution explorer and choose Properties.
    5. Change the Configuration drop-down from Active (Debug) to All Configurations.
    6. Expand Configuration Options | Linker and click on Advanced.
    7. Set the No Entry Point value to Yes (/NOENTRY) and click OK.
    8. Right-click on the AppResLib project in the Visual Studio solution explorer and choose Add | Resource...
    9. Click on String Table and then click New.
    10. Add two strings to the string table with the following IDs:

      AppTitle
      AppTileString

    11. Set the AppTitle value to 100 and set the caption to the language-neutral name of your game that will be displayed in the Games Hub or the Application List.
    12. Set the AppTileString value to 200 and set the caption to the language-neutral name of your game that will be displayed when the game is pinned to the Windows Phone start menu.
    13. Build the AppResLib project.

    Step 2 – Create an English (US) native resource DLL

    1. Right-click on the solution that contains your Windows Phone Game project and choose Add | New Project...
    2. Select Visual C++ | Win32 | Win32 Project and name it AppRes0409.
    3. In the Win32 Application Wizard, select DLL and check the Empty Project check box, then click Finish.
    4. Right-click on the AppRes0409 project in the Visual Studio solution explorer and choose Properties.
    5. Change the Configuration drop-down from Active (Debug) to All Configurations.
    6. Expand Configuration Options | Linker and click on Advanced.
    7. Set the No Entry Point value to Yes (/NOENTRY).
    8. Expand Configuration Options | Resources and click on General.
    9. Set the Culture value to English (United States) (0x409) (/l 0x0409).
    10. Expand Configuration Options | Build Events and click on Post-Build Event.
    11. Set the Command Line value to the following:

      copy "$(OutputPath)$(ProjectName).dll" "$(OutputPath)\AppResLib.dll.0409.mui"

    12. Right-click on the AppRes0409 project in the Visual Studio solution explorer and choose Add | Resource...
    13. Click on String Table and then click New.
    14. Add two strings to the string table with the following IDs:

      AppTitle
      AppTileString

    15. Set the AppTitle value to 100 and set the caption to the English (United States) name of your game that will be displayed in the Games Hub or the Application List.
    16. Set the AppTileString value to 200 and set the caption to the English (United States) name of your game that will be displayed when the game is pinned to the Windows Phone start menu.
    17. Build the AppRes0409 project.

    Step 3 – Create native resource DLLs for other supported languages

    1. Repeat Step 2 and create the resource-only DLL for English (United Kingdom). Set the Resource Culture to English (United Kingdom) (0x809) (/l 0x0809) and update the post-build event command line to rename the DLL file to AppResLib.dll.0809.mui.
    2. Repeat Step 2 and create the resource-only DLL for French (France). Set the Resource Culture to French (France) (0x40c) (/l 0x040c) and update the post-build event command line to rename the DLL file to AppResLib.dll.040c.mui.
    3. Repeat Step 2 and create the resource-only DLL for Italian (Italy). Set the Resource Culture to Italian (Italy) (0x410) (/l 0x0410) and update the post-build event command line to rename the DLL file to AppResLib.dll.0410.mui.
    4. Repeat Step 2 and create the resource-only DLL for German (Germany). Set the Resource Culture to German (Germany) (0x407) (/l 0x0407) and update the post-build event command line to rename the DLL file to AppResLib.dll.0407.mui.
    5. Repeat Step 2 and create the resource-only DLL for Spanish (Spain). Set the Resource Culture to Spanish (Spain) (0xc0a) (/l 0x0c0a) and update the post-build event command line to rename the DLL file to AppResLib.dll.0c0a.mui.

    Step 4 – Add native resource DLLs to your Windows Phone game project

    1. Right-click on your Windows Phone game project in the Visual Studio solution explorer, click Add | Existing Item...
    2. Browse to the file named AppResLib.dll that you built in step 2 above, click the down arrow next to the Add button, and then select Add as Link.
    3. Browse to each of the files named AppResLib.dll.*.mui that you built in steps 3 and 4 above, click the down arrow next to the Add button, and then select Add as Link.
    4. For each of the AppResLib.dll* files added as links, set the Build Action property to None and the Copy to Output Directory property to Copy if newer.  This will make sure that each of these files gets packaged into the XAP file that is created when you build your Windows Phone Game project.

    Step 5 – Make your Windows Phone game project dependent on the native resource DLL projects

    1. Right-click on the solution that contains your Windows Phone Game project and your resource DLL projects in the Visual Studio solution explorer and choose Project Dependencies...
    2. Select your Windows Phone Game project in the Projects drop-down.
    3. Check all of the check boxes next to your resource DLL projects and click OK.

    Step 6 – Update your Windows Phone game to load title strings from the resource DLLs

    Update the application title by doing the following:

    1. In your Windows Phone Game project, open the file Properties\AssemblyInfo.cs.
    2. Remove the AssemblyTitle entry.
    3. Add an AssemblyTitleAttribute entry that looks like this:

      [assembly: AssemblyTitleAttribute("@AppResLib.dll,-100")]

    Update the tile title by doing the following:

    1. Right-click on your Windows Phone Game project in the Visual Studio solution explorer and choose Properties.
    2. Click on the XNA Game Studio tab.
    3. Change the Tile title value to look like this:

      @AppResLib.dll,-200

    The tile title is the name that is displayed if you click and hold on your application/game in the Windows Phone OS and choose to pin it to the start menu.  There is some additional information about these properties and how to configure them in XNA Game Studio games in this documentation topic.  Depending on the scenarios you want to support for your game, it may not be necessary to create separate strings for your application title and tile title.  If you plan to use the same string for both, you do not need to create separate entries in the string table in each of your native resource DLLs in the instructions above.

    Step 7 – Rebuild your Windows Phone game solution

    Rebuild the solution that contains your Windows Phone Game project and your resource DLL projects.  When doing so, make sure that the Windows Phone Game project is set as the startup project (as opposed to one of the resource DLL projects or your content project).

    <update date="10/15/2010"> I found out today that the ingestion process requires that the resource DLL be named AppResLib.dll, so I've updated the steps in this post to reflect that, and I've posted an updated sample solution.  </update>

    <update date="1/18/2011"> Added a stronger warning about the naming of the DLL needing to exactly match what is listed in the documentation. </update>

     

  • Aaron Stebner's WebLog

    Be careful about how you use Guide.IsTrialMode in an XNA Game Studio 4.0 game for Windows Phone

    • 0 Comments

    My colleague Michael Klucher posted an item on his blog earlier this week that I wanted to link to in order to hopefully help raise visibility for it.  In his post at http://klucher.com/blog/trials-and-tribulations/, he describes a performance issue to be aware of when developing Windows Phone games using XNA Game Studio 4.0 and the Windows Phone Developer Tools.

    Here is a quick summary of the key points in his post:

    • On Windows Phone, calling Guide.IsTrialMode can be expensive (~60 milliseconds per call), so it should not be called every frame in your game code.
    • This performance problem only manifests itself when a game is downloaded from the Windows Phone Marketplace – you will not see it when running your game in the emulator or when using Guide.SimulateTrialMode on a device during development.
    • This performance problem does not occur on Xbox 360, so pay particular attention to how you are using Guide.IsTrialMode if you are porting a game from the Xbox 360 to Windows Phone.
    • You should consider checking the trial mode state at startup and at key intervals during your game instead of every frame.  For example, if you have a functionality-limited trial mode, you could check the state at the end of the last level that is a part of your trial experience and determine whether or not to unlock subsequent levels.
  • Aaron Stebner's WebLog

    XNA Game Studio 4.0 sample content is now available directly within Visual Studio 2010

    • 3 Comments

    In past releases, we have published XNA Game Studio developer education content on the Creators Club site, and we have continued to do so as new XNA Game Studio 4.0 content is published.  The recently released XNA Game Studio 4.0 integrates into the Visual Studio 2010 family of products.  Visual Studio 2010 has some new features to provide direct access from the VS IDE to tools and developer education content hosted on the Visual Studio Gallery web site.

    XNA Game Studio 4.0 sample content on the VS Gallery

    We’ve started converting some of the XNA Game Studio 4.0 samples into project templates and publishing them on the Visual Studio Gallery in addition to posting them on the Creators Club site.  We created an account named XNA GS Education on the VS Gallery web site and have posted an initial set of project templates for XNA Game Studio 4.0 content using that account.  You can see a full list of available content on the VS Gallery web site, and you can find XNA Game Studio 4.0 sample content in the Visual Studio 2010 New Project dialog and in the Extension Manager.

    In addition, anyone inside or outside of Microsoft can post their own sample content on the VS Gallery web site and it will show up in the same locations in the VS IDE as the content that we are uploading.  The packaging process is a little tricky – it requires creating a VS 2010 project template and then creating a .vsix file with some specific settings.  We are thinking about ways that we can make the VS Gallery publishing process easier for the XNA Game Studio team and the community.  For now, this is a somewhat manual process, and that is why there is currently only a small amount of XNA Game Studio content aside from the entries that our team has published.

    Accessing online templates via the Visual Studio 2010 New Project dialog

    XNA Game Studio sample content is available within the New Project dialog in Visual Studio 2010, Visual C# 2010 Express and Visual Studio 2010 Express for Windows Phone.  To access this content via the New Project dialog, you can do the following:

    1. Click on File | New | Project...
    2. Click on the Online Templates link on the left side of the New Project dialog
    3. Click on the XNA Game Studio node, and you will see a list of available XNA Game Studio sample project templates that looks like the following:

    4. Click on one of the templates, enter a name and location and click OK
    5. Visual Studio will download the template, install it for you and open a new instance of the template that you can start coding in
    6. After you have installed the template, it will appear in the Installed Templates list in the New Project dialog.  In the screenshot above, you can see green check marks next to the Windows Game State Management and the Windows Phone Game State Management items – those are templates that I have already installed on my computer

    Accessing online templates, controls and tools via the Visual Studio 2010 Extension Manager

    XNA Game Studio sample content is available in Extension Manager in Visual Studio 2010.  The Extension Manager is not available in Visual C# 2010 Express or Visual Studio 2010 Express for Windows Phone.  To access this content via Extension Manager, you can do the following:

    1. Click on Tools | Extension Manager...
    2. Click on the Online Gallery link on the left side of the Extension Manager
    3. Expand the Templates node
    4. Click on the XNA Game Studio node, and you will see a list of available XNA Game Studio sample project templates.  The list of items in this UI is the same as you will see in the New Project dialog.
    5. You can install and uninstall tools and templates from the Extension Manager
    6. After installing one of the XNA Game Studio project templates, you can go to the New Project dialog, find it in the Installed Templates list and create a new instance of the template from there

    In general, I tend to use the New Project dialog to access this XNA Game Studio sample content, even if I’m using an edition of VS 2010 that supports Extension Manager because I prefer the simpler experience of installing + instantiating the template in a single step that is the same as the step I use to instantiate one of the in-box project templates.

    If you are an XNA Game Studio developer, I encourage you to install a VS 2010 edition and XNA Game Studio 4.0 if you haven’t yet and check out some of the great sample content available directly from the VS 2010 IDE.

Page 4 of 48 (1,185 items) «23456»