My colleague Michael Klucher recently recorded a video for Channel 9 that I wanted to link to here. In the video, located at http://channel9.msdn.com/ShowPost.aspx?PostID=400948, Michael presents more details about Zune development features that will be a part of the upcoming XNA Game Studio 3.0 product.
If you are interested in seeing more information about upcoming Zune development features in XNA Game Studio, I encourage you to check out Michael's Channel 9 video.
A while back, I posted a list of possible log files for .NET Framework 3.5 and Visual Studio 2008 setup. Since then, I've realized that there are some sets of log files missing from that list, so I decided to create a separate blog post with information about setup log files that are specific to the .NET Framework 3.5 family of products. This family includes the following:
.NET Framework 2.0 SP1
.NET Framework 2.0 SP1 language packs
.NET Framework 3.0 SP1
.NET Framework 3.0 SP1 language packs
.NET Framework 3.5
.NET Framework 3.5 language packs
The following is a list of log files that can be produced by all of the above setup packages. In all of the cases below, the logs are created by default, and you do not need to specify any verbose logging settings or registry values to cause the logs to be produced. Also, you can find the %temp% directory by clicking on the Windows start menu, typing %temp% and pressing Enter.
.NET Framework 2.0 SP1 setup log files
The following is a complete list of log files that can be produced during .NET Framework 2.0 SP1 setup. This list may vary depending on what OS you are installing on, what processor architecture, and what prerequisite components were already installed on the system prior to running .NET Framework 2.0 SP1 setup.
Logs produced by the .NET Framework 2.0 SP1 setup wrapper:
%temp%\dd_dotnetfx20install*.txt
%temp%\dd_dotnetfx20error*.txt
%temp%\dd_depcheck_netfx20*.txt
Logs produced by the packages chained during .NET Framework 2.0 SP1 setup:
The following is a complete list of log files that can be produced during .NET Framework 3.0 SP1 setup. This list may vary depending on what OS you are installing on, what processor architecture, and what prerequisite components were already installed on the system prior to running .NET Framework 3.0 SP1 setup.
Logs produced by the .NET Framework 3.0 SP1 setup wrapper:
%temp%\dd_dotnetfx30install*.txt
%temp%\dd_dotnetfx30error*.txt
%temp%\dd_depcheck_netfx30*.txt
Logs produced by the packages chained during .NET Framework 3.0 SP1 setup:
The following is a complete list of log files that can be produced during .NET Framework 3.5 setup. This list may vary depending on what OS you are installing on, what processor architecture, and what prerequisite components were already installed on the system prior to running .NET Framework 3.5 setup.
Logs produced by the .NET Framework 3.5 setup wrapper:
%temp%\dd_dotnetfx35install*.txt
%temp%\dd_dotnetfx35error*.txt
%temp%\dd_depcheck_netfx_*.txt
Logs produced by the packages chained during .NET Framework 3.5 setup:
.NET Framework 3.5 language pack verbose MSI log - %temp%\dd_NET_Framework35_LangPack*.txt
Setup log files for other .NET Framework products
I have written separate blog posts about log file locations for other .NET Framework products not listed above. Here they are for your reference in case you need them:
Today, the XNA community gaming platform (CGP) team released a Japanese version of the XNA Game Studio 2.0 documentation. You can download the installer for this documentation from this location. It can be installed on any system that has Visual C# 2005 Express Edition or Visual Studio 2005 Standard Edition or higher installed. If you already have XNA Game Studio 2.0 installed on your system, you can install the Japanese documentation side-by-side and access both the English and the Japanese documentation in the help viewer.
If you read Japanese and would like to view the existing XNA Game Studio 2.0 help documentation in Japanese instead of (or in addition to) English, then I encourage you to download the XNA Game Studio 2.0 Japanese documentation installer and give it a try.
In addition, there are some new silent installation command line switches introduced in the Visual Studio 2008 product family. I've heard from some customers asking me why I posted a long, involved set of instructions for silently installing the components for the Express Editions while there is a simple /q switch available for Visual Studio 2008 setup.
The good news is that since the same setup.exe chainer is used by all Visual Studio 2008 editions, these new silent switches can also be used to install the Visual Studio 2008 Express Editions. The bad news is that the Express Editions were not officially designed to support silent installations in this manner, and there is a bug that can prevent the silent install from working in some scenarios without applying one of the workarounds listed at the bottom of this post.
Description of the issue
The installers for the Express Editions assume that they are being run from a location that they have write permissions to (since the normal UI-based installation scenario starts by copying the setup files to the %temp% folder and re-launching setup from there). This means that if you create an installable layout for the VS 2008 Express Editions and then copy it to a read-only network and attempt to run setup.exe /q /norestart, setup will fail with a error message related to the setup file vs_setup.ms_.
Diagnosing the issue
The log file named %temp%\dd_install_*.txt will have an error message that looks like the following:
[03/25/08,11:11:58] Microsoft Visual C# 2008 Express Edition - ENU: ***ERRORLOG EVENT*** : ERROR_FILE_NOT_FOUND/ERROR_INSTALL_PACKAGE_OPEN_FAILED returned in CRootComponent::Install for: \\myserver\myshare\Visual C# 2008 Express Edition\VCS\vs_setup.ms_
Earlier in the log file, you will see the true root cause of this error:
These log entries show that setup is attempting to extract the contents of ixpvcs.exe to the network share that setup is being run from, and it fails with return value 5 (which means access is denied, most likely because the network share is read-only).
How to work around the issue
Fortunately, there are a few options that can be used when deploying the Visual Studio 2008 Express Editions with the new /q switch in order to work around the above issue:
Extract the contents of the main express edition setup package to the folder on the network share that hosts the setup files for the Visual Studio 2008 Express Editions.
For example, in the Visual C# 2008 Express Edition, you can do this by running ixpvcs.exe /x and selecting the path to extract the files to. When using this option, your installable layout as described in this blog post should contain both ixpvcs.exe and the files vs_setup.msi and vs_setup.cab that are inside of ixpvcs.exe in the root folder next to the file setup.exe.
Grant write permissions to the network share that hosts the setup files for the Visual Studio 2008 Express Editions
Copy the setup files for the Visual Studio 2008 Express Edition that you want to install in silent mode to the local computer and run setup from there instead of running setup directly from the read-only network share
Putting it all together
Once you use one of the above workarounds, you can install a Visual Studio 2008 Express Edition in silent mode by running the following command line just like you can in Visual Studio 2008 Standard Edition and higher:
setup.exe /q /norestart
One note - the previous blog post I wrote about the new silent switches mentioned a /full switch. This switch is not applicable to the Visual Studio 2008 Express Editions because they do not offer any selectable features that are not installed by default. So there is no need to use the /full switch during a silent install of a VS 2008 Express Edition.
Prior to the introduction of this extension, the above tasks required a developer to create their own custom actions and add them to their MSI to integrate with the Windows Vista Game Explorer during game installation and undo the integration during uninstallation.
This functionality will be available in an upcoming weekly release of WiX v3.0. It is not present in the 3.0.4014.0 build, but will be present starting with the next weekly release after that. There will be a help topic in wix.chm as well (located in WiX Help | Advanced WiX Topics | Standard Custom Actions | WixGamingExtension in the table of contents).
In the meantime, I encourage you to check out Bob's blog post for more detailed information about the WixGamingExtension.
Last week, I started getting a larger than normal volume of emails from customers who ran into problems using applications that require the .NET Framework 2.0 and needed advice about how to get their systems back up and running. After investigating some of these cases and talking to some folks on the .NET Framework technical support team and Heath Stewart, I learned more about what was causing many of these issues. Heath wrote up an in-depth summary of this issue and posted a tool to help repair systems that get into this state in this post on his blog. I want to also briefly summarize the issue here and link to his blog in the hopes of making it easier to find in the future.
Description of the issue
Most of the customers I had talked to had the original version of the .NET Framework 2.0 on their system and then attempted to install the .NET Framework 2.0 SP1 (either by directly downloading it or by having it offered to them on Windows Update). However, the .NET Framework 2.0 SP1 setup failed due to an error encountered while uninstalling the original version of the .NET Framework 2.0. Note - behind the scenes, the .NET Framework 2.0 SP1 attempts to do a major upgrade of the original version of the .NET Framework 2.0.
Unfortunately, there are some issues in the uninstall rollback logic for the .NET Framework 2.0 that cause assemblies to not be put back into the global assembly cache (GAC) if .NET Framework 2.0 uninstall fails. That can leave systems in a state where the .NET Framework 2.0 is partially installed and applications that require the .NET Framework 2.0 will not run correctly. To complicate matters, on a system in this state, the .NET Framework 2.0 cannot be repaired or uninstalled and the .NET Framework 2.0 SP1 cannot be installed.
How to diagnose the issue
Systems that encounter this issue will have the following information in the .NET Framework 2.0 SP1 setup wrapper log file (named %temp%\dd_dotNETFX20error.txt):
[03/25/08,11:11:11] Microsoft .NET Framework 2.0a: [2] Error: Installation failed for component Microsoft .NET Framework 2.0a. MSI returned error code 1603
Looking deeper, these systems have the following information in the .NET Framework 2.0 SP1 verbose MSI log file (named %temp%\dd_net_framework20*.txt):
Error 1714.The older version of Microsoft .NET Framework 2.0 Service Pack 1 cannot be removed. Contact your technical support group. System Error 1612.
The installation source for this product is not available. Verify that the source exists and that you can access it.
How to fix a system that encounters the issue
Once a system encounters this issue, it is necessary to update the Windows Installer information for the .NET Framework 2.0 so it will be put back into a consistent state that will allow you to uninstall the .NET Framework 2.0 and install the .NET Framework 2.0 SP1.
Heath has created a tool named the Microsoft .NET Framework 2.0 Registration Correction Tool (clwireg.exe) that will attempt to surgically repair incorrect Windows Installer registration information for the .NET Framework 2.0 in order to unblock the uninstall process. This tool is available for download via a link at the end of this blog post. This tool creates a log file named %temp%\dd_clwireg.txt that describes what it is doing to your system in more detail.
Some folks have also contacted me and indicated that they were able to resolve this issue by using the steps in this blog post. In my experience, those steps will also work, but they are much more time-consuming and invasive than Heath's tool, so if you run into an issue like this, I strongly encourage you to try Heath's tool before resorting to these steps that I posted.
Root cause of the issue
On the systems we have looked at so far, one of the following things had occurred:
The Windows Installer registry information for the .NET Framework 2.0 got into an inconsistent state; the system thinks that one or more hotfixes are installed for the .NET Framework, but the information about the source location of the hotfix is missing from the registry
The Windows Installer cache (%windir%\Installer) is missing some information about a .NET Framework 2.0 patch that is installed on the system
We have not yet tracked down exactly why this problem happens with such a high frequency. I have heard from some customers who have manually deleted files from the %windir%\Installer directory, but that is not very common and does not explain very many instances I've seen of this problem so far.
We also suspect that some overly aggressive registry and file system cleaner utilities might be causing this on some systems, but we have not yet been able to reproduce that in our test lab. If you encounter this issue and can track it down to a registry or file system utility, then please post a comment on this blog post indicating the name, version and download location of the utility you saw this behavior from so that we can try to talk to the creator of the utility to make sure that they do not remove critical Windows Installer information from systems in future versions of their tools.
Final comments
There are many possible causes for .NET Framework 2.0 SP1 setup failures. If you are encountering a failure but have different information in your log files, you are likely running into a different problem. In those cases, I suggest consulting the .NET Framework setup troubleshooting guide for links to other possible installation issues and workarounds, links to log file locations, links to readme files, etc.
I saw your blog post about the February 2008 Cumulative Update for Media Center for Windows Vista. I have Windows Vista Ultimate Edition with SP1 installed, and when I try to install this Cumulative Update, it fails. How can I get this update to install on my Windows Vista SP1 system?
Answer:
Windows Vista SP1 is a cumulative service pack, so all previously released hotfix packages for Windows Vista, including the February 2008 Cumulative Update for Media Center for Windows Vista, are already included in Windows Vista SP1. You do not need to install any separate package in order to get the fixes includes in this cumulative update onto your Windows Vista SP1 system.
The reason that this cumulative update gives you an error while you are installing is that it is marked to not be applicable on Windows Vista SP1. You should not see that update offered to you if you visit Windows Update on a Windows Vista SP1 system, but it is still possible to try to download it and run it directly on systems that it does not apply to.
XNA Game Studio 2.0 integrates with the Visual C# 2005 Express Edition and Visual Studio 2005 Standard Edition and higher. It does not support integrating with any of the Visual Studio 2008 family of products. However, since XNA Game Studio code projects are simply C# projects behind the scenes, it is possible to attempt to open them in the Visual Studio 2008 IDE. Doing this will cause the Visual Studio Conversion Wizard to appear and attempt to walk you through the process of upgrading the project to the Visual Studio 2008 file format. If you do this for an XNA Game Studio 2.0 game project, it will cause several problems, and as a result you should not attempt to upgrade XNA Game Studio 2.0 game projects in the Visual Studio 2008 Conversion Wizard.
The specific problems you will encounter are the following:
Since XNA Game Studio 2.0 does not support integrating into the Visual Studio 2008 product family, there will be no project system available to handle the project after conversion completes and the project will fail to load in the VS 2008 IDE.
The Visual Studio Conversion Wizard does not upgrade any nested content projects (.contentproj) that are a part of your code project.
The Visual Studio Conversion Wizard offers the option to create a backup, but the backup folder does not include the nested content project, which makes it more complicated to revert the project after a failed upgrade attempt.
If you mistakenly attempt to upgrade your XNA Game Studio 2.0 projects using the Visual Studio 2008 Conversion Wizard, you can use the following steps to recover your project and continue development in Visual Studio 2005 or Visual C# 2005 Express Edition:
Create a new folder that will contain your recovered project.
Go to the backup location created by the Conversion Wizard and copy the contents to the folder created in step 1. The backup should be located at <directory selected in the Conversion Wizard UI>\backup.
Go to the upgraded project location and copy the Content folder into the code project directory located in a sub-folder of the new directory you created in step 1. The Content folder should be located at <project directory>\Content for your upgraded project.
On a system that has Visual C# 2005 Express + Visual C# 2005 Express SP1 (and/or VS 2005 + VS 2005 SP1) and XNA Game Studio 2.0 installed, go to the folder you created in step 1 and open the .sln or .vcproj in the Visual Studio 2005 edition and verify it can be opened correctly and built successfully.
Several of the talks delivered by Microsoft employees at the February 2008 Game Developers Conference in San Francisco have been posted for download on MSDN. The .zip files available for download include recordings of the talks and the slides that were presented at the talks.
The following are summaries of the talks and links that can be used to download the presentations delivered by folks on the XNA Community Gaming Platform team (the team that works on the XNA Game Studio product family):
Playing games by yourself can be fun, but it?s far better when you can play with others, whether cooperatively or head-to-head. Creating multiplayer games using XNA Game Studio, however, requires networking support in the XNA Framework for both Windows and Xbox 360. And that support simply wasn?t there?until now! With the release of XNA Game Studio 2.0, we have augmented the XNA Framework to include support for networked games. Come learn about networking in the XNA Framework, what is supported and what?s not, and how you can enable multiplayer support in your games.
This talk is for programmers who want to understand how the XNA Framework works on Xbox 360, and the implications for writing high-performance code. The talk explains when and why the framework transitions between the Xbox user and supervisor modes, and why should you care. The talk also presents best practices for writing efficient graphics and math code, how to use multiple cores to parallelize your game, and which XNA Framework APIs can be called while doing so. Finally, the talk demonstrates what tools are available for investigating performance on Xbox 360, and how Windows tools can help you understand Xbox 360 performance issues.
This talk is for those who want to understand the inescapable performance consequences of the managed programming method: the things you cannot avoid and the things you can. Comparing and contrasting the consequences for the .NET Compact Framework and the classic .NET runtime, the talk explains the reasons for these overheads, the benefits they provide, and what practices minimize the associated costs. Additionally, we discuss some commonly occurring costs, such as boxing, that aren?t inherent to all managed code, and we offer some tips for minimizing those costs.
The XNA Framework Content Pipeline allows developers to use Visual Studio to build their art into resources for use with the XNA Framework and XNA Game Studio. This talk covers how to create new importers and processors using C# to extend the functionality of the Content Pipeline as well as how to debug these importers and processors using XNA Game Studio. We go in-depth into the creation of the code for the importers and processors and do hands-on debugging of the resulting processor and importer to give the audience a clear idea of how to work with and extend the Content Pipeline.
XNA Game Studio offers a robust debugging experience that can greatly enhance a developer?s ability to investigate a game as it runs. Developers of managed games have many debugging techniques at their disposal, but not all of them are self-evident. This talk covers advanced debugging techniques useful to game developers, including demonstrations of powerful IDE debugger features and other tools provided by Microsoft.
One question resounds as more and more developers discover the productivity gains from XNA Game Studio. How do you make money from the games you create? This talk offers a sneak peek into the XNA Arcade Extensions to Game Studio 2.0 along with details of how professional developers can take advantage of XNA Game Studio to produce commercial games.
Yesterday, I wrote a blog post that included a series of links for .NET Framework 3.5 language packs. There are also standalone language packs for the .NET Framework 2.0 SP1 and the .NET Framework 3.0 SP1, so I wanted to supplement that post with a full set of links for the various language packs that are a part of the .NET Framework 3.5 product family:
All of the above download pages also now offer an English language choice in the language selection drop down. There are not English language packs for the .NET Framework because the core packages include English strings. However, the English option for the language packs can be useful because it allows you to read the text of the download page if you do not understand any of the non-English languages that are available for download.
Also note that the .NET Framework 3.5 language pack setup packages include the .NET Framework 2.0 SP1 language pack and .NET Framework 3.0 SP1 and install them as prerequisites if they are not already installed on the system.