WPF:图像路径在发布后不起作用

WPF:图像路径在发布后不起作用,wpf,path,trayicon,Wpf,Path,Trayicon,我的WPF应用程序中有一个trayicon。当我在Visual Studio中调试时,它运行良好: System.Windows.Forms.NotifyIcon ni=新的System.Windows.Forms.NotifyIcon; ni.Icon=新图标.././图标,图标 但在我发布之后,应用程序抛出了一个异常,说它可以找到trayicon图像的路径。我在网上搜索了很多资源,我看到很多解决方案都使用pack,但似乎pack只接受Uri变量,trayicon的路径必须是string。我还

我的WPF应用程序中有一个trayicon。当我在Visual Studio中调试时,它运行良好: System.Windows.Forms.NotifyIcon ni=新的System.Windows.Forms.NotifyIcon; ni.Icon=新图标.././图标,图标

但在我发布之后,应用程序抛出了一个异常,说它可以找到trayicon图像的路径。我在网上搜索了很多资源,我看到很多解决方案都使用pack,但似乎pack只接受Uri变量,trayicon的路径必须是string。我还尝试在项目解决方案下创建一个名为Resource的文件夹,并将图像文件放入其中。这是相同的:在调试时工作,但在发布后不工作


因此,根据@WPF Germany的建议,我在Clickonce发布应用程序后解决了路径问题。但是,如果我将应用程序快捷方式复制到系统启动文件夹,它会在C:\WINDOWS\system32中找到ico,这不容易解决,因为system32通常需要管理员权限才能访问。有什么想法吗?

您是否检查过logo.ico文件是否已复制到输出路径

在VS中,您有多个选项来提供资源文件

第一种选择:

在解决方案资源管理器中选择logo.ico文件,选择“无”作为生成操作,并始终在“文件属性”的“复制到输出目录”中进行复制

编译后,您将在OutputPath的子目录中找到该文件

如果logo.ico位于项目根目录中,请使用:

ni.Icon = new Icon("logo.ico");
其他选择:


使用Resource作为构建操作,并使用从Resources.logo…创建的流构建图标。

为什么不将图标添加到Visual Studio项目的Resources.resx文件中,并通过ni加载它。Icon=Properties.Resources.logo?谢谢,它可以工作!但这似乎只适用于c语言。如果我还需要其他xaml文件中的logo.ico,我需要使用不同的名称再次导入图像。但无论如何,它是有效的!我也有同样的问题,只有当我取消选中设置为False“PublishSingleFile”时,我才能修复。