【问题标题】:.NET Core 3.0 Console Application Cannot Read a File, throws UnauthorizedAccessException.NET Core 3.0 控制台应用程序无法读取文件,抛出 UnauthorizedAccessException
【发布时间】:2019-11-28 20:17:28
【问题描述】:

我创建了一个 .NET Core 3.0 MS 测试项目(键入控制台应用程序)。我有一个尝试读取文件的单元测试:

var imageFile = new System.IO.FileStream("../../../InputFiles/Documents/boksit.pdf", System.IO.FileMode.Open); 

当我运行这个时,我得到这个错误:

System.UnauthorizedAccessException: Access to the path '...boksit.pdf' is denied.

我在最新的 Windows 10 上运行。我已授予所有人访问此文件及其包含文件夹的权限。我还尝试从 C:\temp\boksit.pdf 读取文件并得到相同的结果。

这不是 ASP.NET 应用程序。那么为什么它不能简单地读取这个文件呢?这是一个单元测试项目,所以需要能够读取文件。对此的任何帮助将不胜感激。我是 .NET Core 的新手,如果这是基本问题,我深表歉意 - 但我找不到这个问题的任何答案;一切都适用于 ASP.NET Core(当然,它有一个非常不同的权限模型)。

【问题讨论】:

  • 你不应该在单元测试中读写文件。如果它由于错误代码以外的一种或另一种原因而失败,那么您的测试将因外部原因而失败(这就是您所遇到的)。你写的是集成测试,不是单元测试。

标签: c# .net unit-testing .net-core


【解决方案1】:

好的,我想通了。该文件已在 Windows 中设置为只读。这是由我的版本控制系统 (TFS) 设置的。取消选中此选项可解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-09
    • 2018-07-21
    • 2018-10-24
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    相关资源
    最近更新 更多