Outlook VSTO中的自定义功能区如果不在VSTO项目的根中则会“丢失”?

时间:2013-02-07 18:19:34

标签: c# vsto outlook-addin outlook-2010

我有一个简单的VSTO Outlook加载项。我通过这个article添加了一个空的功能区,它可以工作。

Ribbon.csRibbon.xml文件当前位于我项目的根目录中但是如果我将它们移动到子文件夹(比如AddIn\Ribbon)则没有编译错误但是当我运行Outlook时插件的色带丢失了。使用它时,似乎Ribbon.xml必须保留在项目的根目录中才能显示功能区。

我不明白这种行为;是否有设置或手动引用插件的功能区位置?

谢谢!

1 个答案:

答案 0 :(得分:0)

我重新审视后想出来:添加一个新的Ribbon(XML)项后,有一个生成的函数GetCustomUI,它使用XML文件的路径作为程序集资源中的查找键。文件。

因此,在移动文件时,您应该将调用更改为GetResourceText,如下所示:

   return GetResourceText("MyAddin.Ribbon.xml");

这样的事情:

   return GetResourceText("MyAddin.Ribbons.Ribbon.xml");

你需要这个,因为xml文件是作为项目文件中的资源链接的,该文件应该有这样一行:

  <EmbeddedResource Include="Ribbons\Ribbon.xml" />