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

WPF: Image Path doesn't work after publishing

我的 WPF 应用程序中有一个托盘图标。当我在 Visual Studio 中调试时,它运行良好: System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon(); ni.Icon = new Icon("../../logo,ico");

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

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

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

在 VS 中,您可以通过多种方式提供资源文件。

第一个选项:

Select 您在解决方案资源管理器中的 logo.ico 文件并选择 None 作为 Build ActionCopy alwaysCopy to Output Directory (在文件属性) .

编译后您会在我们OutputPath的子目录中找到该文件。

使用(如果 logo.ico 放置在您的项目根目录中):

ni.Icon = new Icon("logo.ico");

其他选项:

Resource 用作 Build Action 并使用从 Resources.logo...

创建的 Stream 构建您的图标