我对使用C#的.NET编程非常陌生,现在有一个问题,无论我做什么,我都无法修复.我想使用.NET Core和Entity Framework创建一个App.我在Visual Studio(最新版本)中创建一个新的应用程序,然后在第二个窗口中选择C#/ ASP.NET Core Web Application,然后选择API.在窗口的顶部我不能选择ASP.NET Core 2.1(仅2.0)但我需要2.1才能在EF中使用Views.
然后我去NuGet包管理器,看看Microsoft.AspNetCore.All版本是2.0.8.我尝试更新这个2.1.0-rc1-final但是回滚并说它Microsoft.NETCore.App不支持2.1 - >当我尝试更新时Microsoft.NETCore.App我看到" 被项目阻止 ".为了解决.NetCore.App问题,我发出了以下命令:
Install-Package Microsoft.NETCore.App -Version 2.1.0-rc1
Run Code Online (Sandbox Code Playgroud)
现在,我在2.1.0-RC1的Microsoft.NETCore.App,很酷.我现在尝试更新(使用NuGet包管理器)但仍然收到错误消息:
包Microsoft.AspNetCore.All 2.1.0-rc1-final与netcoreapp2.0(.NETCoreApp,Version = v2.0)不兼容.包Microsoft.AspNetCore.All 2.1.0-rc1-final支持:netcoreapp2.1(.NETCoreApp,Version = v2.1)
即使Microsoft.NETCore.App已经是2.1.0-rc1.尝试使用程序包管理器控制台命令更新Microsoft.AspNetCore.All到2.1.0.rc1-final:
Install-Package Microsoft.AspNetCore.All -Version 2.1.0-rc1-final
Run Code Online (Sandbox Code Playgroud)
我在尝试通过NuGet Package Manager时遇到了同样的错误.
关于如何让这个工作的任何想法?
我有以下 appSettings.json 文件:
"SundrySettings": {
"CookieName": "Cookie",
"AccessGroup": "Software Development",
"Terminals" : {
"Raucherplatz" : "tablet1.local",
"Service" : "tablet2.local",
"Technik" : "tablet3.local",
"Technik" : "tablet4.local",
"Container" : "tablet5.local"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想加载到以下结构中:
public class Terminal
{
public string Name;
public string Description;
}
public class SundryOptions
{
public string CookieName { get; set; } = "dummy";
public string HRAccessGroup { get; set; } = "dummy";
public List<Terminal> Terminals;
}
Run Code Online (Sandbox Code Playgroud)
我会尝试使用以下命令加载:
ServiceProvider sp = services.BuildServiceProvider();
SundryOptions sundryOptions = sp.GetService<IOptions<SundryOptions>>().Value;
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是使用属性初始化器永远不会正确设置终端列表。我确实需要一个列表(而不是字典),因为在我的示例中,实体可能是双重的,即 Technik。 …