0

有没有办法以编程方式检测 Windows Phone 7 SDK(版本 7.0、7.1 和/或 7.11)和特定组件(如模拟器、模拟器版本、模拟器映像版本、程序集等)的存在。

我希望通过一个简单的 .NET 4 控制台应用程序来做到这一点。如何判断机器使用的 WP7 SDK 版本?有一点信息,但似乎不够完整。

谢谢

4

2 回答 2

0

这是我用于设备信息的类

public class DeviceInformation
{
    public static Device GetDeviceInfo()
    {
        Device deviceInfo = new Device();
        deviceInfo.Id = getDeviceId();
        deviceInfo.Name = getDeviceName();
        deviceInfo.Manufacturer = getDeviceManufacturer();
        deviceInfo.OSVersion = System.Environment.OSVersion.ToString();
        deviceInfo.Language = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName;

        return deviceInfo;
    }

    private static String getDeviceId()
    {
        Object uniqueId;
        StringBuilder deviceId = new StringBuilder();
        if (DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out uniqueId))
        {
            for (int i = 0; i < ((byte[])uniqueId).Length; i++)
            {
                deviceId.Append(((byte[])uniqueId)[i]);
            }
        }

        return deviceId.ToString();
    }

    private static String getDeviceName()
    {
        Object deviceName;
        DeviceExtendedProperties.TryGetValue("DeviceName", out deviceName);
        return deviceName.ToString();
    }

    private static String getDeviceManufacturer()
    {
        Object deviceManufacturer;
        DeviceExtendedProperties.TryGetValue("DeviceManufacturer", out deviceManufacturer);
        return deviceManufacturer.ToString();
    }
}

问候

于 2012-06-04T14:20:25.853 回答
0

我相信,您想获取有关在开发人员机器上安装的开发人员工具的信息。出于这个原因,一种方法可能是检查已安装的文件夹,并且可以使用以下代码:

           public static List<double> GetSdkVersion()
           {
               var versions = new List<double>();
               var data = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFilesX86);
               var sdkPath = Path.Combine(data, @"Microsoft SDKs\Windows Phone\v7.0");
               var version = Directory.Exists(sdkPath);
               versions.Add(7.0);
               sdkPath = Path.Combine(data, @"Microsoft SDKs\Windows Phone\v7.1");
               return versions;
           }

            public static List<double> GetEmulatorVersios()
            {
                var versions = new List<double>();
                var data = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFilesX86);
                var sdkPath = Path.Combine(data, @"Microsoft XDE\1.0");
                var version = Directory.Exists(sdkPath);
                versions.Add(1.0);
                return versions;
            }

确实,编写此代码可能会更好,但这是我可以提供的。希望能帮助到你。

于 2012-09-12T14:40:51.500 回答