我想测试新的Blazor服务器端框架(又名Razor组件)。
我按照此官方教程安装了Visual Studio 2019 RC,然后安装了.Net Core 3.0预览2 。
安装后,我仅在“创建新的ASP.NET Core Web应用程序”页面上看到ASP.NET Core 2.0和2.1。3.0未显示。
我开始四处乱搞,尝试从此页面安装其他软件包,卸载并重新安装Visual Studio 2019,更新为.NET Core Preview 3,以不同顺序安装了数倍于x64和x86软件包,然后复制/粘贴.Net Core二进制文件到随机文件夹等。没用。没有显示ASP.NET Core 3.0。
这是我的VS在创建项目时的样子(黄色消息在与软件包弄乱之后出现了,所以这不是真正的问题):
这是dotnet --list-sdks命令的输出:
编辑
由于某种原因,我安装了Blazor VSIX软件包(WebAssembly-并不是我想要的,但是无论如何我都安装了它),现在ASP.NET Core 3.0刚刚出现了。但是,仅针对blazor模板:
我不明白 有什么明显的我想念的吗?
.net-core asp.net-core visual-studio-2019 asp.net-core-3.0 .net-core-3.0
我正在使用dotnet watch命令来运行asp.net核心项目.但是,默认情况下,它会将其Production作为一个环境.
我尝试了两种选择:
1) > dotnet watch ASPNETCORE_ENVIRONMENT=Development
2) > dotnet run ASPNETCORE_ENVIRONMENT=Development
Run Code Online (Sandbox Code Playgroud)
但它仍然把生产作为一种环境.
注意:在visual studio环境中,变量在项目属性中设置为默认情况下的开发,并从visual studio中选择该变量.
问题是:如何使用命令行在开发中运行dotnet核心项目?:
1) dotnet run
2) dotnet watch
Run Code Online (Sandbox Code Playgroud) 升级在.NET Core 1.0或1.1上正在编译和运行的项目时,将目标框架更新为.NET Core 2.0(netcoreapp2.0)会导致构建失败,并显示以下错误:
error NU1003: PackageTargetFallback and AssetTargetFallback cannot be used together. Remove PackageTargetFallback(deprecated) references from the project environment.
Run Code Online (Sandbox Code Playgroud)
这个错误的原因是什么,以及如何解决再次构建项目的问题?
在本地测试 Azure Functions 时,我收到此错误:
“在 Blob 存储秘密存储库上执行读取操作时出错。请确保‘AzureWebJobsStorage’连接字符串有效。”
我有 Azure Blob 存储设置,包括存储模拟器和存储资源管理器。如何解决这个问题?
我有一些在asp vnext中我可以定义3种类型的运行时
在Project.json中它看起来像这样:
"frameworks":
{
"dotnet": { },
"dnx451": { },
"dnxcore50": { }
}^
Run Code Online (Sandbox Code Playgroud)
并且ui支持这个

我假设如下:
dnxCore是新的.net核心框架.
dotnet是以前的运行时
dnx451: 在project.json中定义"dotnet"或"dnx451"时有什么不同?
不应该都使用.net执行运行时运行吗?
另外,根据我选择的项目模板(vNext ClassLib或vNext Console Lib),默认包含一个或另一个.
此时我正在轻松地将内容注入到我的控制器中,在某些情况下构建我自己的ResolverServices类.生活很美好.
我无法弄清楚如何做的是让框架自动注入到非控制器类中.框架自动注入我的控制器的工作是什么IOptions,这实际上是我的项目的配置:
public class MessageCenterController : Controller
{
private readonly MyOptions _options;
public MessageCenterController(IOptions<MyOptions> options)
{
_options = options.Value;
}
}
Run Code Online (Sandbox Code Playgroud)
我认为我可以在我自己的类中发生同样的情况,我认为当我模仿控制器时我会接近,就像这样:
public class MyHelper
{
private readonly ProfileOptions _options;
public MyHelper(IOptions<ProfileOptions> options)
{
_options = options.Value;
}
public bool CheckIt()
{
return _options.SomeBoolValue;
}
}
Run Code Online (Sandbox Code Playgroud)
我想我失败的地方就是我这样称呼它:
public void DoSomething()
{
var helper = new MyHelper(??????);
if (helper.CheckIt())
{
// Do Something
}
}
Run Code Online (Sandbox Code Playgroud)
我跟踪它的问题实际上是关于DI的所有内容都是在控制器级别讨论它.我试图找到它在Controller对象源代码中发生的位置,但它在那里变得有点疯狂.
我知道我可以手动创建一个IOptions实例并将其传递给MyHelper构造函数,但似乎我应该能够让框架做到这一点,因为它适用于Controllers.
非常感谢您的帮助.
IServiceProvider.GetRequiredService()和之间有什么区别IServiceProvider.GetService()?
什么时候使用它更好GetRequiredService()?
我试图将一个服务注入我的动作过滤器,但我没有在构造函数中注入所需的服务.这是我有的:
public class EnsureUserLoggedIn : ActionFilterAttribute
{
private readonly ISessionService _sessionService;
public EnsureUserLoggedIn()
{
// I was unable able to remove the default ctor
// because of compilation error while using the
// attribute in my controller
}
public EnsureUserLoggedIn(ISessionService sessionService)
{
_sessionService = sessionService;
}
public override void OnActionExecuting(ActionExecutingContext context)
{
// Problem: _sessionService is null here
if (_sessionService.LoggedInUser == null)
{
context.HttpContext.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
context.Result = new JsonResult("Unauthorized");
}
}
}
Run Code Online (Sandbox Code Playgroud)
而我正在装饰我的控制器:
[Route("api/issues"), EnsureUserLoggedIn]
public class IssueController : …Run Code Online (Sandbox Code Playgroud) 我习惯于创建一个.Net Framework控制台应用程序,并Add(int x, int y)通过WCF服务从头开始使用类库(.Net Framework)公开一个函数.然后我使用控制台应用程序在服务器内代理调用此函数.
但是,如果我使用Console App(.Net Core)和类库(.Net Core),则System.ServiceModel不可用.我做了一些谷歌搜索,但我还没有弄清楚在这个例子中"替换"WCF.
如何将Add(int x, int y)类库中的函数公开到.Net Core中的控制台应用程序?我看到System.ServiceModel.Web,因为这是尝试跨平台,我是否必须创建RESTful服务?
我们在C#中有这个常量:
System.Globalization.DateTimeFormatInfo.InvariantInfo.SortableDateTimePattern
Run Code Online (Sandbox Code Playgroud)
它具有以下值:
"yyyy'-'MM'-'dd'T'HH':'mm':'ss"
Run Code Online (Sandbox Code Playgroud)
我确实在ParseExact函数中使用它,然后也yyyy-MM-ddTHH:mm:ss可以正常工作。
我无法弄清楚单引号的用途。