检测wp7 sdk和特定组件的存在

时间:2012-06-03 23:31:53

标签: windows-phone-7.1 windows-phone windows-phone-7.1.1

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

我希望从一个简单的.NET 4控制台应用程序中执行此操作。 How can I tell what WP7 SDK version a machine is using?有一些信息,但似乎不够完整。

由于

2 个答案:

答案 0 :(得分: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();
    }
}

迎接

答案 1 :(得分: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;
            }

确实,编写这段代码可能会更好,但这就是我可以提供的。 希望,它有所帮助。