C#Winform与CefSharp应用程序在发布版本时崩溃

C#Winform与CefSharp应用程序在发布版本时崩溃,c#,winforms,chromium,cefsharp,C#,Winforms,Chromium,Cefsharp,我使用CefSharp项目创建了一个C#Winform应用程序。 该应用程序在调试模式下工作得很好,但当我尝试使用VS2013发布它时,它会在应用程序开始运行之前崩溃 这是我的program.cs文件: [STAThread] static void Main() { AppDomain.CurrentDomain.AssemblyResolve += Resolver; LoadApp(); } [MethodImpl

我使用
CefSharp
项目创建了一个
C#
Winform
应用程序。 该应用程序在调试模式下工作得很好,但当我尝试使用VS2013发布它时,它会在应用程序开始运行之前崩溃

这是我的program.cs文件:

    [STAThread]
    static void Main()
    {
        AppDomain.CurrentDomain.AssemblyResolve += Resolver;

        LoadApp();
    }

    [MethodImpl(MethodImplOptions.NoInlining)]
    private static void LoadApp()
    {
        var settings = new CefSettings();

        settings.BrowserSubprocessPath = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase,
                                               Environment.Is64BitProcess ? "x64" : "x86",
                                               "CefSharp.BrowserSubprocess.exe");

        settings.CachePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\TelegramParser\CEF";
        settings.IgnoreCertificateErrors = true;
        settings.WindowlessRenderingEnabled = true;
        settings.SetOffScreenRenderingBestPerformanceArgs();

        Cef.Initialize(settings, performDependencyCheck: false, browserProcessHandler: null);

        Application.Run(new Form1());
    }

    private static Assembly Resolver(object sender, ResolveEventArgs args)
    {
        if (args.Name.StartsWith("CefSharp"))
        {
            string assemblyName = args.Name.Split(new[] { ',' }, 2)[0] + ".dll";
            string archSpecificPath = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase,
                                                   Environment.Is64BitProcess ? "x64" : "x86",
                                                   assemblyName);

            return File.Exists(archSpecificPath)
                       ? Assembly.LoadFile(archSpecificPath)
                       : null;
        }

        return null;
    }
当我选中“发布”文件夹时,我只看到以下文件:

通过
CefSharp
Wiki,我了解到有几个文件丢失了。知道有什么问题吗

我使用Visual Studio 2013运行并发布该项目。 我正在使用
任何CPU
进行编译

编辑 任何CPU都是问题所在

您可以选择x64或x86平台

  • 确保已添加对CefSharp.winget的引用

  • 确保解决方案的平台显式设置为x86/x64,而不是任何CPU

  • 在配置文件中添加以下运行时绑定:

    
    
    -这解释了在winforms中逐步设置CEFSharp浏览器的过程。

    缺少哪些文件?请参阅,这可能应该作为副本关闭。@amaitland我看到了这些线程,但当我在应用程序
    .csproj
    中包含if并尝试使用VS2013运行它并调试它时,我得到以下错误:
    其他信息:无法加载文件或程序集“CefSharp.Core.dll”或其依赖项之一。找不到指定的模块。
    我正在使用任何CPU,并完成了此线程中提到的所有操作:
    https://github.com/cefsharp/CefSharp/issues/1714
    -选项2。在我添加include文件之前,调试工作非常好。请编辑您的原始帖子,详细介绍您尝试的内容。一个关于你尝试了某个东西但它不起作用的含糊声明对我来说是不够的。但是CefSharp支持任何Cpu。所以任何Cpu对我都不起作用。我查看了文档,在63.0.2之后,似乎支持任何cpu。你能提到你在问题中使用的版本吗。你也可以尝试一下我回答中提到的步骤-它们应该有效。是的。。。这是改变x86的东西是为旧版本。。。
    <ItemGroup>
    <Content
    Include="$(SolutionDir)packages\cef.redist.x86.3.3497.1841\CEF\**\*" Exclude="$(SolutionDir)packages\cef.redist.x86.3.3497.1841\CEF\x86\**\*;$(SolutionDir)packages\cef.redist.x86.3.2526.1362\CEF\locales\**\*.pak">
      <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
      <Visible>false</Visible>
    </Content>
    
      </ItemGroup>
      <ItemGroup>
        <Content Include="$(SolutionDir)packages\cef.redist.x86.3.3497.1841\CEF\**\en-GB.*;$(SolutionDir)packages\cef.redist.x86.3.3497.1841\CEF\**\en-US.*">
          <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
          <Visible>false</Visible>
        </Content>
      </ItemGroup>
      <ItemGroup>
        <Content Include="$(SolutionDir)packages\cef.redist.x86.3.3497.1841\CEF\x86\**\*">
          <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
          <Visible>false</Visible>
        </Content>
      </ItemGroup>
      <ItemGroup>
        <Content Include="$(SolutionDir)packages\CefSharp.Common.69.0.0\CefSharp\x86\**\CefSharp.BrowserSubprocess.*">
          <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
          <Visible>false</Visible>
        </Content>
      </ItemGroup>
    
      <ItemGroup>
        <Content
        Include="$(SolutionDir)packages\cef.redist.x64.3.3497.1841\CEF\**\*" Exclude="$(SolutionDir)packages\cef.redist.x64.3.3497.1841\CEF\x64\**\*;$(SolutionDir)packages\cef.redist.x86.3.2526.1362\CEF\locales\**\*.pak">
          <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
          <Visible>false</Visible>
        </Content>
      </ItemGroup>
      <ItemGroup>
        <Content Include="$(SolutionDir)packages\cef.redist.x64.3.3497.1841\CEF\**\en-GB.*;$(SolutionDir)packages\cef.redist.x64.3.3497.1841\CEF\**\en-US.*">
          <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
          <Visible>false</Visible>
        </Content>
      </ItemGroup>
      <ItemGroup>
        <Content Include="$(SolutionDir)packages\cef.redist.x64.3.3497.1841\CEF\x64\**\*">
          <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
          <Visible>false</Visible>
        </Content>
      </ItemGroup>
      <ItemGroup>
        <Content Include="$(SolutionDir)packages\CefSharp.Common.69.0.0\CefSharp\x64\**\CefSharp.BrowserSubprocess.*">
          <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
          <Visible>false</Visible>
        </Content>
      </ItemGroup>
    
    An unhandled exception of type 'System.IO.FileNotFoundException' occurred in App.exe
    
    Additional information: Could not load file or assembly 'CefSharp.Core.dll' or one of its dependencies. The specified module could not be found.