2013-08-06 45 views
0

我已经使用Visual Studion 2012的Visual Studio - 应用程序图标 - PowerPoint中的加载项

我从来没有做过这一点,并从文件/新建/ PowerPoint 2010中的插件项目的开工写一个PowerPoint插件。

这创建了一个“类库”项目。

所以我写了我的插件,它的作品完美。快乐的时光!

但是,当应用程序安装在计算机上时,控制面板/安装软件中的图标是默认图标。

通常情况下,我希望能够进入项目属性/应用程序,并选择我想使用的图标,但我唯一的选择是选择一个资源文件。

我已将.ico文件添加到我的资源,但似乎无法解决如何使其成为项目的图标。

任何人都可以帮忙吗?

对不起,忘了说,这是使用“ClickOnce”分发系统进行安装。我查看了“发布”属性选项卡,并且没有任何内容可以定义应用程序图标。

感谢

特雷弗

+0

也许这是你在找什么: http://stackoverflow.com/questions/2041291/how-to-change-windows-applicatoins-default-icon-in-setup-project – br1

+0

感谢但这不是我想要的。 –

回答

0

看起来这不是什么从这个线程说可能....

,因为它是一个.dll操作系统决定分配给它什么图标。

崔佛

Add Icon to Visual Studio 2008-Built Class Lib DLL?

+0

我认为该主题是讨论文件图标,而不是控制面板/安装软件菜单中的图标。 – br1

1

好了,现在我知道的ClickOnce参与,我认为你可以找到的代码有用此peice的。 它必须在应用程序启动时运行。 该代码直接编辑注册表,因此在某些Windows版本中可能会有所不同。

/// <summary> 
/// change the icon in add/remove programs  
/// </summary> 
private static void SetProgramInstallIcon() 
{ 
    //run only when deployed 
    if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed 
    && ApplicationDeployment.CurrentDeployment.IsFirstRun) 
    { 
    try 
    { 
     string iconSourcePath = Path.Combine(System.Windows.Forms.Application.StartupPath, "YourFancyIcon.ico"); 
     if (!File.Exists(iconSourcePath)) 
     return; 

     RegistryKey myUninstallKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall"); 
     string[] mySubKeyNames = myUninstallKey.GetSubKeyNames(); 
     for (int i = 0; i < mySubKeyNames.Length; i++) 
     { 
     RegistryKey myKey = myUninstallKey.OpenSubKey(mySubKeyNames[i], true); 
     object myValue = myKey.GetValue("DisplayName"); 
     if (myValue != null && myValue.ToString() == "YourApplicationDisplayName") 
     { 
      myKey.SetValue("DisplayIcon", iconSourcePath); 
      break; 
     } 
     } 
    } 
    catch (Exception ex) { 
     //manage errors as you like (log, UI, ...) 
    } 
    } 
} 
+0

这确实看起来像一个可能的解决方案,但是由于你提到的注册表差异,实施它是否存在谨慎?谢谢!! –

相关问题