我正在开发一个旧的Windows 8应用程序,该应用程序使用Windows中的ContentIndexer为应用程序中的搜索引擎构建索引。在我将计算机更新到最后的创建者更新之前,它运行良好。我在调用AddAsync函数时遇到异常:
var indexer = Windows.Storage.Search.ContentIndexer.GetIndexer();
await indexer.AddAsync(content);
例外是:来自HRESULT的异常:0x80040DB4
内部异常为null:(
有关信息,仅当我在具有Creators更新的计算机上部署我的应用程序时才会引发异常。它仍在使用以前的更新在Windows 8和Windows 10上工作。
我尝试创建一个空白的Windows 10 UWP应用程序,以查看ContentIndexer是否正常工作但它也失败了。
你有任何想法解决这个问题吗?
由于
答案 0 :(得分:0)
有关信息,仅当我在具有Creators更新的计算机上部署我的应用程序时才会引发异常。它仍在使用以前的更新在Windows 8和Windows 10上运行。
问题是内容的Stream
属性不可用。奇怪的是,如果你没有设置Stream
和StreamContentType
有效,那就行了!我会将此问题报告给相关团队。目前,向索引器添加内容的一种解决方法是,您可以使用IndexableContent
添加索引。
public async static Task<string> AddAppContentFilesToIndexedFolder()
{
var localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
var installDirectory = Windows.ApplicationModel.Package.Current.InstalledLocation;
var outputString = "Items added to the \"Indexed\" folder:";
var appContentFolder = await installDirectory.GetFolderAsync("appcontent-ms");
var indexedFolder = await localFolder.CreateFolderAsync("Indexed", Windows.Storage.CreationCollisionOption.OpenIfExists);
var files = await appContentFolder.GetFilesAsync();
foreach (var file in files)
{
outputString += "\n" + file.DisplayName + file.FileType;
await file.CopyAsync(indexedFolder, file.Name, Windows.Storage.NameCollisionOption.ReplaceExisting);
}
return outputString;
}
有关详情,请参阅official code示例并选择Add app content files to be indexed
方案。