ClickOnceInstall CefSharp Winforms问题

时间:2015-12-11 13:56:47

标签: c# winforms cefsharp

我试图将我的示例Cefsharp winforms项目作为clickonceinstall应用程序运行。 在创建过程中一切都很好,但是当我尝试安装程序时(程序当然正在运行而且没有问题)没有任何反应! 我尝试使用许多不同的配置(发布,调试ecc)和平台(x86,x64),但始终是同一个问题。 我该怎么办?

无论如何,我在Windows 10 64位上使用Visual Studio 15。 如果您需要一些代码,请告诉我

提前致谢

4 个答案:

答案 0 :(得分:8)

我最近在部署ClickOnce应用程序时遇到了这个问题。

我在用户@CRoemheld at this link here的CefSharp问题页面1314上找到了此问题的解决方案。

如其他地方所述,ClickOnce仅将manged .DLL捆绑为其部署过程的一部分。

但我们还需要将原生CEF DLL作为我们应用程序的一部分。

看起来似乎没有一种简单的方法可以通过Visual Studio UI(我尝试过)完成此操作,但您可以通过手动修改.csproj文件以包含以下内容来轻松完成。

打开.csproj文件,并在最终</Project>标识符之前附加以下代码段。

<ItemGroup>
<Content
Include="$(SolutionDir)packages\cef.redist.x86.3.2526.1362\CEF\**\*" Exclude="$(SolutionDir)packages\cef.redist.x86.3.2526.1362\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.2526.1362\CEF\**\en-GB.*;$(SolutionDir)packages\cef.redist.x86.3.2526.1362\CEF\**\en-US.*">
  <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
  <Visible>false</Visible>
</Content>
</ItemGroup>

<ItemGroup>
<Content Include="$(SolutionDir)packages\cef.redist.x86.3.2526.1362\CEF\x86\**\*">
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
<Visible>false</Visible>
</Content>
</ItemGroup>

<ItemGroup>
<Content Include="$(SolutionDir)packages\CefSharp.Common.47.0.4\CefSharp\x86\**\CefSharp.BrowserSubprocess.*">
  <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
  <Visible>false</Visible>
</Content>
</ItemGroup>'

执行此操作后,在Visual Studio中,在发布选项卡上,单击“应用程序文件”按钮

enter image description here

您将看到将随应用程序一起部署所需的CEFSharp依赖项。

enter image description here

答案 1 :(得分:1)

我下载了Cefsharp并使用了默认的winforms示例。

我在x64中构建了问题所以我跳过了它并使用了x86。

这与oneclick启动器有问题。该日志文件表示由于明显的问题而崩溃。

I found this表示更改设置。

&#34;在项目属性中 - &gt;应用程序选项卡 - &gt;资源 - &gt;复选框图标和清单,设置&#34;使用默认设置嵌入清单&#34;引起了这个问题。将其设置为&#34;创建没有清单的应用程序&#34;解决问题。&#34;

然后我删除了WinForms.example树下的清单文件。 执行干净的构建并发布!

现在我有一个工作单击。

希望明显的问题与您所拥有的问题相同。

答案 2 :(得分:0)

几天后,我终于做到了。 该问题的解决方案如下:

  1. 右键点击项目---&gt;卸载项目
  2. 然后再次右键点击该项目---&gt;编辑projectname.csproj
  3. 在文件和文件中,在结束标记之前添加以下代码:http://codepaste.net/ir2h7s(块代码似乎现在不起作用:\)

  4. 右键点击项目---&gt;重新加载项目

  5. 发布您的应用!

答案 3 :(得分:0)

我的答案几乎与@Ocean Airdrop的答案相同,但还有以下补充内容:

  1. 注意CEF版本。我有69.0.0
  2. 注意cef.redist版本。它应该与您的项目中的相同。我的是3.3497.1841
  3. 如果您使用的是x64,还应包括x64。因此,更完整的代码段如下所示:

<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.3497.1841\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.x64.3.3497.1841\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>

此外,您仍需要注意以下事实:您需要在目标计算机上安装Visual Studio C ++ Redist。否则它仍然无法正常工作。