Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
518 views
in Technique[技术] by (71.8m points)

c# - ClickOnceInstall CefSharp Winforms Problems

I'm trying to run my sample CefSharp WinForms project as a clickonceinstall application.

Everything is ok in the process of the creation, but when I try to install the program (the program is working of course and without issue), nothing happens! I tried this operation with many different configurations (releases, debug ecc ) and platform (x86, x64), but it's always the same issue.

What can I do?

I'm using Visual Studio 15 on Windows 10 64 bit.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I also ran into this issue recently while deploying a ClickOnce application.

I found the solution for this problem on the CefSharp Issues page 1314 by the user @CRoemheld at this link here.

As noted elsewhere, ClickOnce will only bundle up managed .DLL's as part of its deployment process.

But we also need to include the native CEF DLL's as part of our app.

It doesn't look like there is an easy way to do this through the Visual Studio UI (I tried), but you can do it easily by manually modifying the .csproj file to include the following.

Open up your .csproj file and append the following snippet before the final </Project> identifier.

<ItemGroup>
<Content
Include="$(SolutionDir)packagescef.redist.x86.3.2526.1362CEF***" Exclude="$(SolutionDir)packagescef.redist.x86.3.2526.1362CEFx86***;$(SolutionDir)packagescef.redist.x86.3.2526.1362CEFlocales***.pak">
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
<Visible>false</Visible>
</Content>
</ItemGroup>

<ItemGroup>
<Content Include="$(SolutionDir)packagescef.redist.x86.3.2526.1362CEF**en-GB.*;$(SolutionDir)packagescef.redist.x86.3.2526.1362CEF**en-US.*">
  <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
  <Visible>false</Visible>
</Content>
</ItemGroup>

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

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

Once you do this, within Visual Studio, on the publish tab, when you click the "Application Files" button

enter image description here

You will see the required CEFSharp dependencies that will be deployed with the app.

enter image description here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...