由于受到了DreamSpark学生认证,我用的是Windows Server 2012的正版系统,但有一个问题就是,这个系统不能玩扫雷。

经过探索,在MSDN论坛上找到解决办法,原文如下:
http://social.technet.microsoft.com/Forums/zh-CN/winserver8gen/thread/b64cdc31-7e2d-40b8-a45d-45a8203c5fde

方法是,在Windows 8下找到System32和SysWOW64下的所有xaudio*.dll和xinput*.dll,然后复制到Windows Server 2012对应的文件夹下,过程很简单,只是可能需要劳烦一下室友。为图个简便,我就顺手将这段代码用C#实现了:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace CSConsole
{
    class Program
    {
        static string[] sourceFolders = 
        {
            Environment.GetFolderPath(Environment.SpecialFolder.System), 
            Environment.GetFolderPath(Environment.SpecialFolder.SystemX86)
        };

        static string baseFolder = "扫雷必须文件";

        static string[] destFolders = 
        {
            Path.Combine(baseFolder, "System32"), 
            Path.Combine(baseFolder, "SysWOW64"),
        };

        static void Main(string[] args)
        {
            if (!Directory.Exists(baseFolder))
                Directory.CreateDirectory(baseFolder);
            for (int folderIndex = 0; folderIndex < sourceFolders.Length; ++folderIndex)
            {
                var source = sourceFolders[folderIndex];
                var dest = destFolders[folderIndex];
                var files = new List<string>();
                files.AddRange(Directory.GetFiles(source, "xaudio*.dll"));
                files.AddRange(Directory.GetFiles(source, "xinput*.dll"));
                if (!Directory.Exists(dest))
                    Directory.CreateDirectory(dest);
                foreach (var file in files)
                {
                    File.Copy(file, Path.Combine(dest, Path.GetFileName(file)));
                }
            }
        }
    }
}
View Code

相关文章:

  • 2021-12-12
  • 2022-12-23
  • 2021-12-12
  • 2021-11-08
  • 2021-07-15
  • 2021-11-26
  • 2022-12-23
猜你喜欢
  • 2021-09-18
  • 2021-12-12
  • 2021-08-05
  • 2018-05-22
  • 2021-06-09
  • 2021-11-01
  • 2021-12-02
相关资源
相似解决方案