我的MS Visual C#程序正在编译并运行得很好.我关闭了MS Visual C#,以便在生活中做其他事情.
我重新打开它(在做任何其他事情之前)去"发布"我的程序并得到以下错误消息:
程序C:\ myprogram.exe不包含适用于入口点的静态"Main"方法
咦?是的它确实......而且它们都提前15分钟工作了.当然,我可以相信,在我关闭之前,我不小心碰到了什么或做了什么......但是什么?我该如何解决这个问题?
我的Program.cs文件如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Threading;
namespace SimpleAIMLEditor
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new mainSAEForm());
}
}
}
Run Code Online (Sandbox Code Playgroud)
......那里有一些评论.没有其他错误.
救命?
我在使用 docker 时遇到了问题,但找不到合适的解决方案。
我正在尝试使用 dotnet sdk 2.1 构建 docker 映像。
问题是当 docker 尝试运行 build 语句时,它失败了,错误输出是
CSC:错误 CS5001:程序不包含适合入口点的静态“Main”方法
有趣的是,如果我在本地命令行上执行构建语句,它工作正常。
我已经在项目上检查了我的 LanguageVersion 标签,它是 7.3。
这是我的 docker 文件
FROM microsoft/dotnet:2.1-sdk AS builder
WORKDIR /src
COPY ./nuget ./nuget
COPY ./NuGet.Config ./
COPY Services/AadTracking ./
# Copy all the referenced projects
COPY ./Services/AadTracking/Company/Company.Service.AadTracking/Company.Service.AadTracking.csproj ./AadTracking/Company/Company.Service.AadTracking/Company.Service.AadTracking.csproj
COPY ./Services/AadTracking/Office.Re.Service.AadTracking/Office.Re.Service.AadTracking.csproj ./AadTracking/Office.Re.Service.AadTracking/Office.Re.Service.AadTracking.csproj
COPY ./Services/AadTracking/Company/Office.Re.Service.AadTracking.Company/Office.Re.Service.AadTracking.Company.csproj ./AadTracking/Company/Office.Re.Service.AadTracking.Company/Office.Re.Service.AadTracking.Company.csproj
COPY ./Services/AadTracking/Office.Re.Service.AadTracking.EventStore/Office.Re.Service.AadTracking.EventStore.csproj ./AadTracking/Office.Re.Service.AadTracking.EventStore/Office.Re.Service.AadTracking.EventStore.csproj
# Restore packages
RUN dotnet restore "./AadTracking/Company/Company.Service.AadTracking/Company.Service.AadTracking.csproj"
RUN dotnet build -c Debug --no-restore "./AadTracking/Company/Company.Service.AadTracking/Company.Service.AadTracking.csproj"
# COPY source code
#aad tracking
COPY ./Services/AadTracking/Company/Company.Service.AadTracking …Run Code Online (Sandbox Code Playgroud) 在将其标记为副本之前,请先阅读说明.
我使用visual studio代码创建了C#项目.这个项目包含两个.cs文件Addition.cs和Substraction.cs这两个文件都包含main()函数,这两个文件包含两个不同的程序.
Addition.cs文件中的代码
using System;
namespace Example
{
class Addition
{
static void Main(string[] args)
{
int sum = 3 + 2;
Console.WriteLine(sum);
}
}
}
Run Code Online (Sandbox Code Playgroud)
Substraction.cs文件中的代码
using System;
namespace Example
{
class Substraction
{
static void Main(string[] args)
{
int sub = 3 - 2;
Console.WriteLine(sub);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想逐个测试这个程序,但是当我这样做的时候
"dotnet run"
它失败并出现上述错误.
我知道因为同一项目中的两个main()函数(入口点)创建了这个错误,但是这可以通过设置启动项目在visual studio中克服.
我正在使用Visual Studio代码,我无法设置启动项目.有没有办法在visual studio代码中设置c#项目的入口点?