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 Action
和 Copy always
在 Copy to Output Directory
(在文件属性) .
编译后您会在我们OutputPath
的子目录中找到该文件。
使用(如果 logo.ico 放置在您的项目根目录中):
ni.Icon = new Icon("logo.ico");
其他选项:
将 Resource
用作 Build Action
并使用从 Resources.logo
...
创建的 Stream
构建您的图标
我的 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 Action
和 Copy always
在 Copy to Output Directory
(在文件属性) .
编译后您会在我们OutputPath
的子目录中找到该文件。
使用(如果 logo.ico 放置在您的项目根目录中):
ni.Icon = new Icon("logo.ico");
其他选项:
将 Resource
用作 Build Action
并使用从 Resources.logo
...
Stream
构建您的图标