我在几乎所有未来的.NET框架讨论中都会看到以下内容:
所有这些之间有什么区别?
我怎么知道何时使用合适的?
尝试使用带有Update 3的Visual Studio 15 Enterprise在ASP.NET Core项目中添加Controller时,出现以下错误:
"The was an error running the selected code generator: No executables found matching command 'dotnet-aspnet-codegenerator'"
我试图弄清楚如何使用主机构建器模式来运行控制台应用程序(而不是 Windows 服务)。目的是保持流程与 WebApi 相似,以保持开发实践相似。我见过使用 HostedService 或 BackGroundService 的示例,他们希望将其作为 Windows 服务运行。但是,如果我想运行一个简单的控制台应用程序,我在哪里指定我的入口点类和方法?从 hostbuilder.Build() 中,我可以看到 Run() 和 RunAsync() 方法。但我无法弄清楚它会执行什么?
我已经看到了其他示例,您可以在其中创建 servicecollection,然后使用 serviceprovider.GetService().SomeMethod() 来启动该过程。但这有点偏离我们想要做的事情。所以请建议如何指定启动过程。我们正在使用 3.1 .Net Core。
class Program
{
static async void Main(string[] args)
{
var host = CreateHostBuilder(args).Build();
await host.RunAsync();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostBuilderContext, serviceCollection) => new Startup(hostBuilderContext.Configuration).ConfigureServices(serviceCollection))
.UseSerilog()
;
}
Run Code Online (Sandbox Code Playgroud) 我从这个站点安装了.net核心.使用它导致了许多相关的包管理问题:
dotnet restore命令继续"安装".net核心NuGet包.那些包装"安装"在哪里?未创建新文件夹.dotnet restore为"Hello World"的最小要求的约一百名的NuGet包,其中99%的人想必无关的"Hello World"的应用实例.当然,.net本机构建将删除所有不需要的东西 - 但我预计它restore也会抓住很少(三个或四个包,而不是一百个).为什么会这样?dotnet restore.这次没有安装任何软件包.似乎所有安装的软件包都是第一次安装到一些全球位置进行共享.我以为.Net Core没有那样工作.我认为.Net Core项目将所有依赖项保存在本地.我定位的唯一框架是dnxcore50.为什么会这样?restore命令安装的软件包都列为beta版.奇.我以为.Net Core在RC1,而不是beta.对此感到困惑.为什么会这样?我也很好奇哪些文档可以/将要解释所有这些对我来说.我尝试使用谷歌搜索这些问题,并没有发现任何东西(也许只是可怕的google-fu?).
我读过很多文章,包括这篇文章,但我仍然无法弄清楚它们之间有什么区别,而且他们也没有用简单的术语或根本没有解释过.
有人可以澄清.NET SDK和.NET Runtime之间的区别吗?
更新:非常感谢使用比较.类比和简单的英语是非常有教育意义的.
我已将我的项目从.NET 4.5更新到.NET Core(使用ASP.NET Core).我在之前的版本中有一些非常简单的代码,它使用位图对象System.Drawing来调整图像大小.
据我所知System.Drawing,不能在.NET Core中使用,因为它不是跨平台的,但可以使用什么呢?
我用Google搜索了一下,找不到任何东西.我唯一能找到的就是这篇文章,它上面没有任何代码.
当我在命令行中发出以下命令时:
dotnet publish -o "./../output" -c Release
在dotnetcli正确的出版项目.但是,它不会复制appsettings.Production.json文件,只有appsettings.json.
为什么是这样?我已经google了并阅读了官方核心文档,但还没有找到正确的环境appsettings.json应该如何在发布输出中结束.
我应该appsettings.Production.json手动复制到已发布的文件夹吗?
这个程序在为.NET 4编译时工作正常,但在为.NET Core编译时也能正常工作.我理解不支持编码的错误,但不知道如何解决它.
Public Class Program
Public Shared Function Main(ByVal args As String()) As Integer
System.Text.Encoding.GetEncoding(1252)
End Function
End Class
Run Code Online (Sandbox Code Playgroud) 当我运行命令时,docker run -i -t myProject它显示错误:
找不到任何已安装的 .NET Core SDK 您是要运行 .NET Core SDK 命令吗?从以下位置安装 .NET Core SDK:https : //aka.ms/dotnet-download
但是,我确实安装了 .NET Core SDK 并且PATH是正确的(如下所示:https : //docs.microsoft.com/en-us/aspnet/core/test/troubleshoot?view=aspnetcore-3.1#no-net -core-sdks-were-detected)。
更重要的是,我的项目只需要运行时 .NET Core SDK。
有谁知道可能是什么问题?
运行 dotnet --info 时,我得到:
.NET Core SDK(反映任何 global.json):版本:3.1.101 提交:b377529961
运行时环境:操作系统名称:Windows 操作系统版本:10.0.18363 操作系统平台:Windows RID:win10-x86 基本路径:C:\Program Files (x86)\dotnet\sdk\3.1.101\
主机(用于支持):版本:3.1.1 提交:a1388f194c
已安装的 .NET Core SDK:3.1.101 [C:\Program Files (x86)\dotnet\sdk]
安装的 .NET Core 运行时:Microsoft.AspNetCore.App 3.1.0 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 3.1.1 [C:\Program Files (x86) )\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.NETCore.App 3.1.0 …
.net-core ×10
asp.net-core ×5
c# ×4
.net ×2
asp.net ×1
docker ×1
dotnet-cli ×1
nuget ×1
publish ×1
runtime ×1
sdk ×1
vb.net ×1
windows-1252 ×1