C# 我应该在哪里存储我的应用程序';是特拉伊孔吗?
我仍然有一个问题,我不知道在哪里存储我的C# 我应该在哪里存储我的应用程序';是特拉伊孔吗?,c#,wpf,C#,Wpf,我仍然有一个问题,我不知道在哪里存储我的TrayIcon。 基本上,如果Windows要从“autostart”启动我的程序。。。它坠毁了。我发现问题出在我指定的通往TrayIcon的道路上。我在C#WPF中使用以下命令加载TrayIcon: 因为整个手动启动过程没有问题(双击.exe文件)。但是,当我试图让程序在启动时从Windows注册表启动时,程序崩溃了。问题似乎是autostart进程找不到图标。接下来我尝试了这个: NotifiIcon.Icon = new System.Drawin
TrayIcon
。
基本上,如果Windows要从“autostart”启动我的程序。。。它坠毁了。我发现问题出在我指定的通往TrayIcon的道路上。我在C#WPF中使用以下命令加载TrayIcon:
因为整个手动启动过程没有问题(双击.exe文件)。但是,当我试图让程序在启动时从Windows注册表启动时,程序崩溃了。问题似乎是autostart进程找不到图标。接下来我尝试了这个:
NotifiIcon.Icon = new System.Drawing.Icon(Environment.CurrentDirectory + @"\icon.ico");
但是同样的事情发生了
所以,有两件事我会找到最好的方法(希望如此):
您可能不应该使用
Environment.CurrentDirectory
,而应该使用Application.StartupPath
如果您执行以下操作,它将起作用:
_trayIcon = new NotifyIcon
{
Text = "Some application text",
Icon = new Icon(Path.Combine(Application.StartupPath, "icon.ico"), DefaultMaximumSize),
Visible = true
};
您可以将图标作为嵌入式资源或在资源文件中存储和访问。这基本上包括生成的程序集中的图标本身。除了程序集的命名空间之外,您不需要知道任何路径。这两个代码段是相同的,并且有完全相同的问题,即当CurrentDirectory不是您希望的位置时。请先使用资源,然后是程序集。然后是位置。谢谢您的帮助。我解决了这个问题,通过使用“拖放”将图标添加到我的“图像”文件夹中。接下来,我正在设置路径:
Stream iconStream=System.Windows.Application.GetResourceStream(新Uri()pack://application:,,,,/Images/sqldbmb.ico”).Stream代码>成功了!
_trayIcon = new NotifyIcon
{
Text = "Some application text",
Icon = new Icon(Path.Combine(Application.StartupPath, "icon.ico"), DefaultMaximumSize),
Visible = true
};