我有一个简单的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
但是,当我手动运行应用程序时,它运行良好。 谢谢!
答案 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);