2017-10-30 6 views
1

私の開発マシンでこのエラーを個人的に再現することはできませんでしたが、いくつかのユーザーが報告されています。ファイルを共有するために株式契約を開始しようとすると、例外が発生します。UWPシェア契約を初期化するときのMissingInteropData例外

StorageFile ExportFile = await model.Export(); 

if (ExportFile == null) return; 

if (DataTransferManager.IsSupported()) 
{ 
    DataTransferManager.GetForCurrentView().DataRequested += 
     (sender, e) => Share_DataRequested(sender, e, ExportFile); 
    DataTransferManager.ShowShareUI(); 
} 
else 
{ 
    ErrorHelper.showError("Your device does not support sharing."); 
} 

このコードは、関数を呼び出します。

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); 
    } 
} 

次のスタックトレースを持つ 'SetStorageItems' をしようとすると、これが何らかの理由で失敗した:

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) 

私がすることはできませんされました誰にでも何か提案がありますか?

+0

共有しようとしているファイルはどこにありますか?アプリケーションのキャッシュやユーザーが提供できるファイルかどうかアクセスを失わないためにファイルを追跡する必要があるかもしれません。私はそれが助けになるか分からないが、あなたは[StorageApplicationPermissions](https://docs.microsoft.com/en-us/uwp/api/Windows.Storage.AccessCache.StorageApplicationPermissions)を見ることができる – Vincent

+0

ありがとう、私はApplicationPermissionsを見ていきます。ファイルは[テンポラリアプリケーションデータ]の同じルーチンで作成されます(https://docs.microsoft.com/en-us/windows/uwp/app-settings/store- and-retrieve-app-data#temporary-app-data)フォルダに格納されているアイテムです。 – Jon

+0

同じエラーですか?解決しましたか? – Andrea485

答えて

1

私はパーティーに遅刻していることは知っていますが、多分まだ助けています...バージョン5.3以降のNuGetパッケージMicrosoft.NETCore.UniversalWindowsPlatformを参照すると、リリースビルド(.NETネイティブツールチェーンコンパイラを使用)で問題が発生します。それはいくつかのタイプの不一致/鋳造の問題がボンネットの下で起こっているようです。明示的SetStorageItemsメソッドに渡されたタイプを設定するようにしてください:

IEnumerable<IStorageItem> files = new IStorageItem[] {file}; 
args.Request.Data.SetStorageItems(files); 

をこれでも解決しない場合は、(ない非常に将来性はあるが)クイックフィックスを単に5.2.4にMicrosoft.NETCore.UniversalWindowsPlatform参照をダウングレードするかもしれません。

+0

ありがとう、タイプを明示的に宣言してトリックでした! – Jon

関連する問題