如何将视觉C++重新分发包含在应用程序中
How to include Visual C++ Redistribution with application
我在Visual Studio 2010中编写了一个大型的C# 4.0应用程序。前段时间,我添加了CEF框架(版本43.0.0.0),以便在WinForms应用程序中使用Web浏览器。
如果我从 Visual Studio 运行我的应用,浏览器将正常运行。但是,在使用 ClickOnce 部署我的应用程序时,它抛出以下错误:"无法加载文件或程序集'CefSharp.Core.dll'或其依赖项之一。找不到指定的模块。尽管所有 CEF 文件都存在于 bin\Debug 文件夹中。事实上,我在 GitHub 上找到了一个页面,列出了需要哪些文件,仔细检查会验证可执行文件文件夹中是否存在所有文件。
可在此处找到所需文件的列表:
上述文章中提出的一点是,Visual C++ Redist 文件是必需的,并在问题 6 中提出。如何在目标应用上包含 Visual Studio C++ 2012/2013 可再发行组件?
它特别指出 CefSharp 版本 43.0.0 及更低版本需要 VC++ 版本 2012。因此,我下载了vcredist_x86.exe(2012版) 我在 Microsoft SDK 文件夹中创建了一个包.xml和产品.xml引导程序文件。我将这些作为先决条件包含在Visual Studio 2010的"发布"屏幕中。
但是,在 ClickOnce 部署并尝试启动 CEF Web 浏览器时,它会立即引发异常"无法加载文件或程序集'CefSharp.Core.dll"或其依赖项之一。找不到指定的模块。
我不知道该怎么做,以便让浏览器在我的开发环境之外工作,即最终用户成功使用。 我已经遵循了我在网上找到的所有步骤,无论是在Stackoverflow还是Github for CefSharp上。还需要什么才能使其正常工作?
请帮忙!
我添加此附录,以防任何使用 CefSharp 的人遇到同样的问题,即"无法加载文件或程序集'CefSharp.Core.dll"或其依赖项之一。找不到指定的模块。事实证明,这是一个ClickOnce问题。ClickOnce 包含所有"托管"资源,但不包括非托管资源,即 cef.pak、cef_100_percent.pak、d3dcompiler、libcef.dll、icudtl.dat 等。
如果我右键单击"引用"并尝试浏览到这些资源以添加它们,Visual Studio 会抱怨它们不受管理,并且不允许添加它们。
在使用Microsoft ClickOnce 和部署论坛后,建议我右键单击项目,添加>现有项并添加它们。然后将其生成操作设置为"内容",并将"复制到输出目录"设置为"始终复制"。
这允许资源显示在应用程序文件中...在"发布"选项卡上。在另一个 ClickOnce 部署之后,启动 Web 浏览器成功。不再抱怨文件丢失。
- 在Qt应用程序中包含Python.h会导致对Qt函数的未定义引用
- 如何将视觉C++重新分发包含在应用程序中
- QTCreator GUI应用程序中包含窗口基源代码并在代码中打开
- Eclipse 在检查语法时看不到包含文件,但在构建或运行应用程序时会看到
- 在静态库中使用Boost会导致应用程序包含Boost
- 如何在<QtWin>应用程序中包含 #include - QtWinExtras
- 获取包含共享库的c++应用程序的调用堆栈
- 将Poco C++库包含到Mac OS X上的Qt Quick应用程序(Qt Creator)中
- 使用DLL时应用程序中包含的.lib文件
- 外部应用程序使用共享内存接收消息,但没有包含的数据
- visual 无法在控制台应用程序项目中包含头文件C++
- 将信息从 Chromium Embedded (Javascript) 发送到包含C++的应用程序
- <QNetworkAccessManager><QNetworkReply> 在 BB10 应用程序开发的 cpp 文件中包含 时出错
- 包含atlbase.h标头时应用程序崩溃
- c++应用程序使用qt,如何包含gnuplot
- 将Alien包含在便携式应用程序C++中
- 拥有一个包含MFC项目和用于单元测试的控制台应用程序的解决方案
- 如何将CodeSynthesis XSD包含到自己的应用程序中
- 如何在 qt 应用程序中包含 jxcore c++ 库"jx.h"?
- 自包含应用程序中的异常安全性