System.IO和System.Runtime中都存在FileNotFoundException

时间:2016-04-04 12:06:51

标签: c# .net asp.net-core

我已经启动了一个简单的新ASP.NET核心Web项目,需要读取文件内容。

在新的类库(包)(Visual C#> Web)项目中,默认情况下会定位以下框架。我还添加了System.IO.FileSystem

"frameworks": {
  "net451": { },
  "dotnet5.4": {
    "dependencies": {
      "Microsoft.CSharp": "4.0.1-beta-23516",
      "System.Collections": "4.0.11-beta-23516",
      "System.Linq": "4.0.1-beta-23516",
      "System.IO.FileSystem": "4.0.0",
      "System.Runtime": "4.0.21-beta-23516",
      "System.Threading": "4.0.11-beta-23516"
    }
  }
}

在我的一个课程中,我试图抛出一个FileNotFoundException但是我对 .NET Platform 5.4 发出以下错误:

  

CS0433 类型' FileNotFoundException'存在于System.IO,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'和' System.Runtime,Version = 4.0.20.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'

我已尝试删除对System.Runtime的引用,但这是徒劳的,因为System.IO.FileSystem本身将其列为依赖项。

这在构建.NET平台5.4时似乎只能表现出来,如下所示:

VS2015 screenshot

违规代码:

if (!File.Exists(file))
    throw new System.IO.FileNotFoundException();

我是否错误配置了我的项目依赖项?是否有我应该使用的替代IO命名空间?

1 个答案:

答案 0 :(得分:1)

  

我是否错误配置了我的项目依赖项?是否有我应该使用的替代IO命名空间?

您错误配置了项目依赖项。错误消息告诉我们很多。没有替代的IO命名空间可供使用。相反,您需要重新配置项目依赖项以避免命名冲突。

选项1,坚持使用RC1并指定兼容的依赖项

global.json > SDK的目标RC1。

"sdk": {
  "version": "1.0.0-rc1-update1"
}

project.json >将依赖项更改为兼容。事实证明,4.0.0System.IO的{​​{1}}版本兼容,而您使用的测试版则不兼容。

System.Runtime

选项2,升级到RC2并使用NET标准平台

如果您准备定位RC2 SDK,那么您可以定位特定的.NET平台标准。以下是针对"frameworks": { "net451": { }, "dotnet5.4": { "dependencies": { "Microsoft.CSharp": "4.0.1-beta-23516", "System.Console": "4.0.0-beta-23516", "System.IO": "4.0.0", "System.Runtime": "4.0.0" } } } SDK和rc2-20221

的示例

global.json > SDK的目标RC2。

netstandard1.3

project.json>使用"sdk": { "version": "1.0.0-rc2-20221" } 确保兼容的API表面区域。

netstandard

测试线束

这是一个在我的机器上构建和运行的小程序。它使用选项1或选项2。

"dependencies": {
  "Microsoft.Extensions.PlatformAbstractions": "1.0.0-*"
},
"frameworks": {
  "netstandard1.3": {
    "dependencies": {
      "System.Console": "4.0.0-beta-*"
    },
    "imports": [
      "net451",
      "dotnet5.4"
    ]
  }
}