我已经启动了一个简单的新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时似乎只能表现出来,如下所示:
违规代码:
if (!File.Exists(file))
throw new System.IO.FileNotFoundException();
我是否错误配置了我的项目依赖项?是否有我应该使用的替代IO命名空间?
答案 0 :(得分:1)
我是否错误配置了我的项目依赖项?是否有我应该使用的替代IO命名空间?
您错误配置了项目依赖项。错误消息告诉我们很多。没有替代的IO命名空间可供使用。相反,您需要重新配置项目依赖项以避免命名冲突。
global.json > SDK的目标RC1。
"sdk": {
"version": "1.0.0-rc1-update1"
}
project.json >将依赖项更改为兼容。事实证明,4.0.0
和System.IO
的{{1}}版本兼容,而您使用的测试版则不兼容。
System.Runtime
如果您准备定位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"
]
}
}