我有一个使用<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mkyong.common</groupId>
<artifactId>HibernateExample</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<name>HibernateExample</name>
<url>http://maven.apache.org</url>
<repositories>
<repository>
<id>JBoss repository</id>
<url>http://repository.jboss.org/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4-1203-jdbc4</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.3.Final</version>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.12.1.GA</version>
</dependency>
</dependencies>
</project>
的Asp.Net MVC核心网站。为了实现这一点,我将语言版本设置为C#7.2(在属性 - &gt; build - &gt;高级对话框中,在csproj中进行了双重检查)以进行调试和发布构建配置。
App在Debug和Release模式下构建并启动。
现在,我正在尝试直接从Visual Studio 2017 15.5.2(使用WebDeploy)将其发布到Azure网站,我得到了这个:
Program.cs(17,29):错误CS8107:功能'async main'不可用 在C#7.0中。请使用语言版本7.1或更高版本。 CSC(0,0):错误 CS5001:程序不包含适合的静态“主”方法 一个切入点
在输出窗口中,我看到它正在运行带有一些标志的public static async Task Main()
,可能其中一个是错的?
任何人都知道这是一个已知问题还是我做错了什么?
答案 0 :(得分:2)
本身不是答案,但是它的价值async Main
只是语法糖。在幕后,Roslyn只添加了标准的void Main
包装结构:
static void Main(object[] args)
{
MainAsync(args).GetAwaiter().GetResult();
}
static async Task MainAsync(object[] args)
{
// your code
}
可能不值得花时间尝试将服务器放在C#版本的同一页面上,只是为了节省三行代码。
答案 1 :(得分:2)
这似乎是Visual Studio中的一个错误。 将此行添加到.csproj文件中的主属性组解决了我的问题:
<LangVersion>latest</LangVersion>
ASP.NET Home存储库中也报告了此问题here。