【发布时间】:2018-02-15 19:29:31
【问题描述】:
感谢您的光临。
这是我面临的问题,希望能得到一些帮助。
我正在尝试访问 .NET 标准 DLL 中的文件。如果我在测试 UWP 应用程序中使用 Windows.Storage 命名空间,一切正常,如下所示:
Windows.Storage.StorageFile f = await StorageApplicationPermissions.FutureAccessList.GetFileAsync("TestPickedFileToken1");
txt.Text = await Windows.Storage.FileIO.ReadTextAsync(f);
真正的应用是访问 .NETStandard 2.0 DLL 的 MVVM UWP 应用(针对 Fall Creators Update)。问题是我找不到包含要添加到我的 DLL 中的 Windows.Storage 命名空间的程序集。它在 UWP 中可用,当我尝试在 System.IO 中使用以下内容时,它使我可以访问 DLL 中的路径被拒绝错误:
string s = File.ReadAllText(filename);
我需要从 DLL 读取/写入文件。如果我在 UWP 应用程序的 ViewModel 中读/写它会起作用,但我不想这样做。是否可以在我的 DLL 中添加对 Windows.Storage 的引用,或者是否可以替代访问 DLL 中的文件?
提前感谢您的帮助!
【问题讨论】:
-
@HansPassant 我不知道 UWP 但
StorageFileAPI 在我看来好像无法正常访问文件,我们必须使用其他方式与(可能是沙盒)文件进行交互系统。如果这是一个 UWP 独有的 API,那么这意味着你不能在 netstandard 库中使用它。 -
@Hans Passant,感谢您的回复。最新的 UWP 应用不允许在不使用 Windows.Storage 命名空间并首先授予该位置权限的情况下访问文件系统的所有位置。早些时候,我使用了一个 .NET Standard 1.4 DLL 和一个针对 15063 的 UWP 应用程序,并且没有收到 System.IO.File.ReadAllText 错误,但感谢您的尝试。
-
这些存储 API 是否可以与流一起使用,那么是否可以仅与您的 netstandard 库中的流一起使用?
标签: c# uwp .net-standard-2.0