我无法在我的任何开发计算机上亲自重现此错误,但已报告了多个用户。在尝试分享共享文件的共享合同时,会出现例外情况。
private void Share_DataRequested(DataTransferManager sender, DataRequestedEventArgs args, StorageFile file)
{
try
{
args.Request.Data.Properties.Title = file.DisplayName;
args.Request.Data.SetStorageItems(new List<StorageFile>() { file });
}
catch (Exception e)
{
args.Request.FailWithDisplayText("Error occured");
ErrorHelper.showErrorReporter("Export error", e.Message + Environment.NewLine + e.StackTrace, "The export failed.", BugType.Export_Error);
}
}
此代码调用函数:
ComTypeMarshalling_MissingInteropData, System.Collections.Generic.IEnumerable<Windows.Storage.IStorageItem>. For more information, visit http://go.microsoft.com/fwlink/?LinkId=623485
at SharedLibrary!<BaseAddress>+0x43bf7e
at SharedLibrary!<BaseAddress>+0x43c0ba
at SharedLibrary!<BaseAddress>+0x43901c
at Songbook!<BaseAddress>+0x19f791b
at Songbook.Models.Exporters.ExportMaster.Share_DataRequested(ApplicationModel.DataTransfer.DataTransferManager sender, ApplicationModel.DataTransfer.DataRequestedEventArgs args, Storage.StorageFile file)
当使用以下堆栈跟踪尝试'SetStorageItems'时,由于某种原因,这会失败:
$xml = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><Products></Products>");
$product = $xml->addChild("Product");
$product->addChild("Name", "P1");
$product->addChild("Price", "10");
$product = $xml->addChild("Product");
$product->addChild("Name", "P2");
$product->addChild("Price", "20");
我无法在任何地方找到解决方案,有人有任何建议吗?
答案 0 :(得分:1)
我知道我已经迟到了,但也许它仍然有帮助......当在版本中引用Microsoft.NETCore.UniversalWindowsPlatform
NuGet包时,问题发生在发布版本上(使用.NET本机工具链编译器) 5.3或更新。似乎在引擎盖下有一些类型不匹配/铸造问题。尝试显式设置传递给SetStorageItems
方法的类型:
IEnumerable<IStorageItem> files = new IStorageItem[] {file};
args.Request.Data.SetStorageItems(files);
如果仍然没有帮助,快速修复(虽然不是非常适合未来)可能只是将Microsoft.NETCore.UniversalWindowsPlatform
引用降级为5.2.4。