UWP应用程序在文件写入时崩溃

时间:2019-02-18 13:39:27

标签: uwp filesystems windows-iot-core-10

我尝试使用Windows IoT 10 Core上运行的UWP应用程序写入文件,但是应用程序意外关闭。

代码:

private async void logFile()
{
    StorageFile file = await KnownFolders.DocumentsLibrary.CreateFileAsync("robodem.log", CreationCollisionOption.OpenIfExists);
    using (Stream fileStream = await file.OpenStreamForWriteAsync())
    using (var streamWriter = new StreamWriter(fileStream))
    {
        streamWriter.Write("test");
    }
}

我为Package.appxmanifest添加了权限:

<Capabilities>
    <Capability Name="internetClient" />
    <uap:Capability Name="musicLibrary" />
    <uap:Capability Name="removableStorage" />
    <uap:Capability Name="picturesLibrary" />
    <uap:Capability Name="videosLibrary" />
    <uap:Capability Name="documentsLibrary" />
    <DeviceCapability Name="webcam" />
    <DeviceCapability Name="serialcommunication">
        <Device Id="any">
            <Function Type="name:serialPort" />
        </Device>
    </DeviceCapability>
</Capabilities>

输入代码后,应用程序立即关闭,并显示默认的Hello World应用程序。

我的问题:

  • 在哪里可以找到Windows IoT核心版10上的应用程序日志以及如何阅读?
  • 在哪里可以找到有关Windows IoT的信息-> UWP文件系统抽象?
  • StreamWriter("log.log")将在哪里创建日志文件?
  • 有什么问题吗?

更新

我对代码进行了少许修改,因为它提供了here

StorageFolder storageFolder = await KnownFolders.GetFolderForUserAsync(null, KnownFolderId.DocumentsLibrary);
try
{
    StorageFile file = await storageFolder.CreateFileAsync("robodem.log", CreationCollisionOption.ReplaceExisting);

    using (Stream fileStream = await file.OpenStreamForWriteAsync())
    using (var streamWriter = new StreamWriter(fileStream))
    {
        streamWriter.Write("test");
    }
}
catch (Exception ex)
{
    onMessageOccured(Severity.Error, ex.Message);
}

我看到的错误:

enter image description here

更新

我将调试器类型设置为混合模式,这没有帮助。

1 个答案:

答案 0 :(得分:1)

通常不建议也不允许使用文档库。请参阅此blog,以了解UWP应用程序中的documentsLibrary功能。最好更改保存位置。如果您仍然想使用DocumentsLibrary,请在您的应用清单中添加文件类型关联,以声明您的应用可以访问的特定文件类型。

enter image description here