【问题标题】:Entry point not found in .NET Core 2.0 DLL在 .NET Core 2.0 DLL 中找不到入口点
【发布时间】:2018-08-20 17:51:53
【问题描述】:

我找不到任何可以解释这一点的东西——由于某种原因,我的 .NET Core 2.0 ASP.NET 应用程序没有通过以下方式作为 DLL 运行:

dotnet MyProject.Web.dll

相反,我得到了异常:

未处理的异常:System.MissingMethodException:在程序集“MyProject.Web,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”中找不到入口点。

namespace MyProject.Web
{
public class Program
{
    public static void Main(string[] args)
    {
        LoadDependencies();

        var host = new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

        host.Run();
    } 

    private static void LoadDependencies()
    {
        DependencyLocator.Instance.DefineIfUndefined<IDataProvider, DataProvider>();
    }
}
}

它作为独立的可执行文件运行良好(当在项目配置中定位“控制台应用程序”时),但现在我正在尝试部署到需要它通过 dotnet 命令运行的服务器(作为 DLL,即“dotnet .\MyProject.Web.dll”),它似乎有问题。我的服务器和本地开发框都出现上述异常。

我有点震惊,它找不到 Main 方法——它在 Program.cs 中被声明为静态。我错过了什么吗?

(编辑:澄清一下,我试图针对“dotnet”命令运行的 DLL 来自编译为“控制台库”的目标,因为我的服务器明确要求 DLL,因为它们不会运行可执行文件)。

【问题讨论】:

  • 我真的被你的问题弄糊涂了。控制台应用程序需要 main 功能,并且根据您的代码,当您在独立运行时,您正在运行控制台。请分享在服务器上部署的原因。
  • 当我尝试通过 dotnet MyProject.Web.dll 运行应用程序时,我得到一个异常,如上所述。如果我在本地编译并让它作为应用程序运行,它运行/工作得很好。但是,我们的服务器环境要求我们的 Web 内容通过 dotnet 命令作为 DLL 部署/运行。当我通过 dotnet 运行 DLL 时,它不起作用,这就是我想要弄清楚的。

标签: asp.net asp.net-core .net-core


【解决方案1】:

好的,这很烦人,希望能帮助其他人。

我的主机只想通过 .NET Core 专门运行 DLL。它们不允许运行可执行文件。

因为 DLL 经常在项目中构建为“类库”输出类型,所以我认为这是构建它所必需的工作流。但是,我发现每当您将项目构建为“控制台应用程序”时,它除了构建一个 EXE 之外,它还会构建一个 DLL。因此,在上面的示例中,MyProject.Web.exe 和 MyProject.Web.dll 都是在输出类型为“控制台应用程序”时构建的。

来自“控制台应用程序”的 MyProject.Web.dll 与来自“类库”的 MyProject.Web.Dll 不同。来自“类库”的不会有一个可以在上面发现的入口点,这将导致上述问题。

因此,如果您遇到此错误,请查找与您的 EXE 同名的 DLL - 这是您要在 dotnet 控制台中运行的实际 DLL(即 dotnet MyProject.Web.dll )

【讨论】:

  • 问题和答案都是模棱两可的。为什么你得到一个 .exe 而其他人得到一个 .dll?它不会以目前的状态帮助其他人。
  • @LexLi 不知道您是否是反对票,但如果是的话,您不应该这样做。我遇到了同样的问题。我想我可以在控制台应用程序中摆脱 exe 文件并假设 dll 输出是相同的。不知道这是问题所在。这个答案肯定对我有帮助。
  • 这里相同 - 回答为我节省了数小时的潜在挫折
  • 也帮助了我...在调试期间仅在 Windows 下出现此错误。 Prod环境下Linux下的“类库”属性没有问题。
猜你喜欢
  • 2012-12-08
  • 2011-06-07
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多