Aaron Stebner's WebLog

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

  • Aaron Stebner's WebLog

    How to open a Windows Phone .sln file in Visual Studio 2010 Professional instead of Visual Studio 2010 Express for Windows Phone

    • 3 Comments

    Question:

    I have a Windows Phone project that was created by somebody else, and when I double-click on the .sln file, it opens in Visual Studio 2010 Express for Windows Phone.  I have Visual Studio 2010 Professional installed and would prefer to use that for my Windows Phone development scenarios.  How can I force Windows Phone .sln file to open in Visual Studio 2010 Professional instead of Visual Studio 2010 Express for Windows Phone?

    Answer:

    In your scenario, the .sln was originally created in the Visual Studio 2010 Express for Windows Phone edition.  The general philosophy used by Visual Studio is to try to open a .sln in the exact edition that it was originally created in, and then to fall back to other supported Visual Studio editions in the same product family if that exact edition is not installed.

    There are a few options you can use to cause a Windows Phone .sln file to open in Visual Studio 2010 Professional by default.

    Option 1 – Update the metadata in the .sln file

    You can open the .sln file in a text editor such as Notepad and change the following value at the top of the file:

    # Visual Studio 2010 Express for Windows Phone

    To cause the .sln to open in Visual Studio 2010 Professional by default, change the above line to the following:

    # Visual Studio 2010

    After you change that value and save and close your .sln file, double-clicking on the .sln will cause it to attempt to be opened in Visual Studio 2010 Professional (or Premium or Ultimate) if that edition is installed on your computer.  It will still fall back to trying the express edition if Visual Studio 2010 Professional is not installed.

    Note – when using this option, you will have to change the metadata in every .sln file that you want to change the default behavior for.

    Option 2 – Update the default verb handler for the .sln extension

    You can right-click on a .sln, choose Open With, then Choose Default Program.  It is usually set to the Microsoft Visual Studio Version Selector by default.  You can browse to the Visual Studio 2010 version of devenv.exe and force the computer to open .sln files with Visual Studio 2010 Professional instead of the version selector.

    This option will change the behavior for all .sln files opened on the computer, including .sln files created in other Visual Studio product families (such as Visual Studio 2005 or 2008).  This option typically does not work well if you have multiple Visual Studio editions from different product families installed side-by-side and you regularly use .sln files from multiple Visual Studio product families on the same computer.

    Option 3 – Rename the vpdexpress.exe program

    You can rename the Visual Studio 2010 Express for Windows Phone executable (vpdexpress.exe), and this will cause the Visual Studio version selector to think that the express edition is not installed.  That will cause the .sln to open in Visual Studio 2010 Professional even if the metadata in the .sln file says that the .sln file was created with the express edition.

    This option is the most invasive, but allows you to avoid needing to update each .sln file, and it does not affect the ability to open .sln files created with other Visual Studio product families.

  • Aaron Stebner's WebLog

    Possible workarounds for localization build issues in XNA Game Studio 4.0 Windows Phone games

    • 0 Comments

    Recently, we have run into a few issues where XNA Game Studio 4.0 Windows Phone games did not display proper localized strings when changing the phone OS language.  We narrowed down these issues to problems in the game .csproj file that ended up preventing localized resource DLLs from being correctly packaged into the XAP file and deployed to the phone.  These issues are pretty subtle and easy to miss, so I wanted to describe them in a bit more detail in case anyone else runs into these issues in the future.

    Note – the issues in this post are specific to XNA Game Studio projects for Windows Phone.  Localized resource DLLs will be correctly packaged in Silverlight projects for Windows Phone regardless of the format that you use for the <SupportedCultures> tag.

    Issue 1 – <SupportedCultures> elements are case-sensitive

    The list of supported cultures is case-sensitive for XNA Game Studio 4.0 Windows Phone projects.  This means that the cultures that you list in the <SupportedCultures> property in your .csproj file must exactly match the culture names used in the *.resx files in your project and the *.resources.dll files that are built with your project.

    For example, if you have a file named strings.fr-FR.resx in your project, you must put the following in your .csproj:

    <SupportedCultures>fr-FR</SupportedCultures>

    If you put the following in your .csproj instead of what is listed above, then the French strings.resources.dll that is built from strings.fr-FR.resx may not be packaged into the XAP file for your game (which means that the strings will not be available at runtime on the phone after you deploy your game):

    <SupportedCultures>fr-fr</SupportedCultures>

    Issue 2 – <SupportedCultures> property cannot be split across lines

    By default, a new XNA Game Studio 4.0 Windows Phone project includes a blank list of supported cultures that looks like the following:

    <SupportedCultures>
    </SupportedCultures>

    When you add cultures to the <SupportedCultures> property in your .csproj, you must move the closing </SupportedCultures> tag to the same line instead of leaving it on a separate line.  For example:

    <SupportedCultures>en;fr;it;de;es</SupportedCultures>

    If you put the following in your .csproj instead of what is listed above, then the *.resources.dll files that are built or referenced by your project will not be packaged into the XAP file for your game (which means that the strings will not be available at runtime on the phone after you deploy your game):

    <SupportedCultures>en;fr;it;de;es
    </SupportedCultures>

    Issue 3 – <SupportedCultures> property might not exist in the .csproj

    By default, a new XNA Game Studio 4.0 Windows Phone project includes a blank list of supported cultures that looks like the following:

    <SupportedCultures>
    </SupportedCultures>

    However, projects created with previous CTP or beta builds of the Windows Phone Developer Tools will not have a <SupportedCultures> property in the .csproj.  In order to correctly package *.resources.dll files for your game, you will need to add a <SupportedCultures> property to your .csproj and provide the appropriate list of cultures.  You should add the <SupportedCultures> property to the first <PropertyGroup> in your .csproj.

  • Aaron Stebner's WebLog

    Registration is now open for the Dream.Build.Play 2011 Challenge

    • 0 Comments

    As announced earlier today on the XNA Game Studio team blog, registration is now open for the Dream.Build.Play 2011 Challenge.  Here is a quick summary of the key information about the Dream.Build.Play 2011 Challenge:

    • Registration is open from February 28, 2011 through May 17, 2011
    • Game submission will be open from May 17, 2011 through June 14, 2011
    • The contest is open to Xbox 360 games created with XNA Game Studio 4.0
    • Prizes include $75000 divided amongst the top 4 games, and opportunity to have your game reviewed for a possible Xbox LIVE Arcade publishing contract

    I encourage you to check out the Dream.Build.Play 2011 web site for more detailed information and to register for the contest.

  • Aaron Stebner's WebLog

    Link to samples that merge the XNA Game Studio 4.0 platformer starter kit with the game state management sample

    • 1 Comments

    I found a link on the App Hub forums today that I wanted to pass on.  Jim Perry, one of the XNA MVPs, has posted a Windows version of the XNA Game Studio 4.0 platformer starter kit that is merged with the game state management sample to provide a full menu system for the game.  He posted the base version and all of the extended versions of the platformer starter kit (extra lives, scrolling level, power ups).

    You can find the blog post and download links at http://machxgames.com/blog/?p=27.

  • Aaron Stebner's WebLog

    Mailbag: Why is the .NET Framework still listed in the Programs and Features control panel after running the cleanup tool?

    • 0 Comments

    Question:

    I ran the .NET Framework cleanup tool and removed all versions of the .NET Framework from my computer.  Why do I still see the .NET Framework listed in the Programs and Features control panel after removing it with the cleanup tool?

    Answer:

    Just because an item is listed in the Programs and Features control panel (on Windows Vista and higher) or the Add/Remove Programs control panel (on Windows XP, Windows Server 2003 and earlier), it does not mean that the product is actually installed.  The Programs and Features control panel lists all items that appear in a specific part of the registry.

    On a 32-bit OS:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall

    On a 64-bit OS:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
    • HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

    The .NET Framework cleanup tool removes some of the .NET Framework-related registry keys at the above locations, but it does not have the ability to remove those registry keys for every previously shipped .NET Framework hotfix.  As a result, the .NET Framework might still appear in the list of installed programs in the Programs and Features control panel even after running the cleanup tool.

    Please note that the .NET Framework cleanup tool is not designed to be a replacement for the standard .NET Framework uninstall process.  It is only designed as a last resort for cases where install, uninstall, repair or patch installation did not succeed for unusual reasons.  You should always try the uninstall steps listed in this blog post before resorting to using the .NET Framework cleanup tool.

  • 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

    • 32 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

    • 47 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

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