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

时间:2017-02-27 05:14:48

标签: wpf path trayicon

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

第一个选项:

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

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

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

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

其他选项:

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