【问题标题】:WPF: Image Path doesn't work after publishingWPF:发布后图像路径不起作用
【发布时间】:2017-02-27 05:14:48
【问题描述】:

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

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

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

【问题讨论】:

  • 为什么不在你的Visual Studio项目的Resources.resx文件中添加一个Icon并通过ni.Icon = Properties.Resources.Logo加载呢?

标签: wpf path trayicon


【解决方案1】:

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

在 VS 中,您有多种选择来提供资源文件。

第一个选项:

在解决方案资源管理器中选择您的 logo.ico 文件,然后在 Copy to Output Directory 处选择 None 作为 Build ActionCopy always(在文件属性中)。

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

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

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

其他选项:

Resource 用作Build Action 并使用从Resources.logo 创建的Stream 构建您的图标...

【讨论】:

  • 谢谢它的工作!但似乎这只适用于c#。如果我还需要其他 xaml 文件中的 logo.ico,我需要使用不同的名称再次导入图像。但无论如何它都有效!
  • 我遇到了同样的问题,只有当我取消选中(设置为 False)'PublishSingleFile' 时才能修复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-04
  • 2020-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-04
  • 2021-11-10
相关资源
最近更新 更多