gpt4 book ai didi

c# - 什么是 vNext 控制台应用程序?

转载 作者:太空狗 更新时间:2023-10-29 22:30:38 32 4
gpt4 key购买 nike

我安装了 Visual Studio 2015 RC 来试用 ASP.Net vNext 模板。在“Web”部分,我注意到一个控制台应用程序显示为

enter image description here

我决定把它弄乱,我发现了一些有趣的点:

  • 默认模板未将 Main() 指定为 static
  • System.CodeDomSystem.Net 等许多程序集不可用。
  • 许多方法如System.Console.ReadKey不能使用。

这些 vNext 控制台应用程序是什么?为什么要限制以及它们的用途是什么?

最佳答案

答案

What is a vNext console application?

它是一个在新的 .NET 运行时环境 (DNX) 中运行的控制台应用程序。

Why the restrictions and what are the uses of them?

出现这些限制是因为您的目标是 .NET Core (dnxcore50) 而不是(或除此之外)完整的 .NET Framework (dnx451)。据我所知,这些限制是为了允许与许多不同的操作系统交叉兼容。也就是说,.NET Core 的功能比完整框架少,因为这样更容易与许多系统兼容。随着时间的推移,这些限制可能会随着更多完全跨平台的出现而消失。

The default template does not specify Main() as static.

DNXMicrosoft.Framework.ApplicationHost 一起提供。这个默认的应用程序主机“知道如何找到一个public void Main方法。这是用于设置 ASP.NET 托管层的入口点......”它也仍然知道如何找到传统的static void Main 方法。实例 Main 方法的一个优点是它允许我们请求运行时环境将服务注入(inject)我们的应用程序。

Many assemblies such as System.CodeDom and System.Net are not available. Many methods such as System.Console.ReadKey cannot be used.

System.Console.ReadKeydnx451 中可用,但在 dnxcore50 中不可用。我上次检查时 System.Net 也是如此。因此,如果您想使用它们,请确保以 dnx451 而不是 dnxcore50 为目标。

想要移除限制?只需从您的 project.json 文件中删除 dnxcore50 条目。然后您将只针对完整的框架而不受限制。

另见

https://msdn.microsoft.com/en-us/magazine/dn913182.aspx

'Console' does not contain a definition for 'ReadKey' in asp.net 5 console App

Using System.Net.Mail in ASP NET MVC 6 project

关于c# - 什么是 vNext 控制台应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30857104/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com