有没有办法以编程方式检测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?有一些信息,但似乎不够完整。
由于
答案 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;
}
确实,编写这段代码可能会更好,但这就是我可以提供的。 希望,它有所帮助。