C#CefSharp wpf无法找到家属

时间:2016-12-01 20:10:10

标签: c# wpf cefsharp

我有一个简单的wpf应用程序,它使用CefSharp初始化设置缓存路径:

try
{
    var settings = new CefSettings();
    settings.CachePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Cache");
    Cef.Initialize(settings, performDependencyCheck: true, browserProcessHandler: null);
}
catch (Exception e)
{
    MessageBox.Show(e.ToString());
}

它运行良好,但我在系统启动时使用此代码启动:

Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
key.SetValue(Assembly.GetExecutingAssembly().GetName().Name, Assembly.GetExecutingAssembly().Location);

如果app在启动时由系统启动,我会在catch块中收到此错误:

System.Exception: Unable to lacte requred Cef/CefSharp dependencies:
Missing:CefSharp.BrowserSubprocess.exe
Missing:CefSharp.BrowserSubProcess.Core.dll
Missing:CefSharp.Core.dll
Missing:icudtl.dat
Missing:libcef.dll

但是,当我手动运行应用程序时,它运行良好。 谢谢!

1 个答案:

答案 0 :(得分:1)

这是因为#build your string to evaluate (you can use your object) $expression='1' + ' -eq ' + '1' #evaluate your expression and get result $result=Invoke-Expression $expression #use result if ($result) { } 不是您应用程序的bin目录。

working directory

有很多方法可以将当前目录更改为应用的bin路径。最简单的方法是更改​​代码中的当前目录(如您所建议的那样)。

Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
key.SetValue(Assembly.GetExecutingAssembly().GetName().Name, Assembly.GetExecutingAssembly().Location);