微软说好的一键Target WP8.1的神话终究还是个坑。不少朋友发现有些API虽然编译通过,但依然是爆炸的。比如

await StorageFolder.GetFolderFromPathAsync();

运行时会就直接爆炸了:

这个坑留在我的几个应用里好久了,今天刚解决。方法是换个API。。。。。

原来是这样子:

var path = await StorageFolder.GetFolderFromPathAsync("Assets/StationFloorMaps/");
var imgTemplate = await path.GetFileAsync(_imgPath.Replace("Assets/StationFloorMaps/", string.Empty));

现在是这样子:

var package = Windows.ApplicationModel.Package.Current.InstalledLocation;
var assetsFolder = await package.GetFolderAsync("Assets");
var mapsFolder = await assetsFolder.GetFolderAsync("StationFloorMaps");
var imgTemplate = await mapsFolder.GetFileAsync(_imgPath.Replace("Assets/StationFloorMaps/", string.Empty));

这个缺点就是不能用路径的方法直接一步到位去get,只能一级一级GetFolderAsync进去。虽然SB了点,但是程序不会再爆炸了。。。