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 withouth issue) nothing happens! I tried this operation with many different configurations (releases, debug ecc ) and platform (x86, x64) but is always the same issue. What can I do?
Anyway I'm using Visual Studio 15 on Windows 10 64 bit. If you need some code, let me know
Thanks in advance
I also recently ran into this issue 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 manged .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)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>'
Once you do this, within visual studio, on the publish tab, when you click the "Application Files" button
You will see the required CEFSharp dependencies that will be deployed with the app.
I downloaded Cefsharp and used the default winforms example.
I had issues building in x64 so i skipped that and used x86.
this had a problem with the oneclick launcher. The logfile said it was crashing due to a manifest issue.
I found this which suggests a change to the settings .
"In project properties -> Application tab -> Resources -> checkbox Icon and manifest, the setting "Embed manifest with default settings" caused the problem. Setting it to "Create application without a manifest" fixes the problem."
I then deleted the manifest file under the WinForms.example tree. Performed a clean build and published!
Now i have a working oneclick.
Hopefully the manifest issue is the same as the one you are having.
After a couple of days, finally I did it. The solution for the problem is the follow:
- Right click on the project ---> Unload Project
- Then Right click on the project again ---> Edit projectname.csproj
At the and of the file, just before the closing tag add the following code: http://codepaste.net/ir2h7s (The block code seems doesn't work right now :\ )
Right click on the project ---> Reload project
- Publish your app!
I have practically the same answer as @Ocean Airdrop's, but also with the following additional things:
- Mind the CEF version. I have
69.0.0
- Mind the
cef.redist
version. It should be the same as the one you have on your project. Mine was3.3497.1841
; - Include x64 as well, if you're having x64. Thus the more complete code snippet would be as follows:
<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>
Also, you need to still pay attention to the fact that you need to have Visual Studio C++ Redist on the target computer. Otherwise it's still not gonna work.
来源:https://stackoverflow.com/questions/34225222/clickonceinstall-cefsharp-winforms-problems