OSGI.NET 插件无法启动之情景一
关于osgi.net 的使用网上也有不少的资料,最近在使用osgi.net 开发插件的时候,遇到了这样的bug,造成插件甚至整个项目都无法启动,异常的具体消息如下:
Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "UIShell.iOpenWorks.WinForm.Properties.Resources.resources" was correctly embedded or linked into assembly "ConfigFileConvert" at compile time, or that all the satellite assemblies required are loadable and fully signed.

在网上查了很多资料也没能解决,最后发现,是扩展点的名称写错了。为了避免以后犯同样的错误,同时也方便其它开发人员参考,就有了这篇博客。废话不多说,具体解决方法如下:
1.在Mainfest.xml 文件中,Extension 节点中的 Point 属性,要正确的赋值。
<Extension Point="UIShell.Applications">
<Application Title="Wisdo Demon" ToolTip="Wisdo Demon" Icon="ConfigFileConvert.SvgPlugin.Resources.Conversion128.png.png.png.png">
<Menu Text="Wisdo Demon" ToolTip="Wisdo Demon" Icon="ConfigFileConvert.SvgPlugin.Resources.OneFileConvert.png.png.png" Class="ConfigFileConvert.SvgPlugin.SvgControl" />
</Application>
</Extension>
<Extension Point="PageFlowService.PageNode">
<PageNode Name="AppCenterPage" Priority="" Value="ConfigFileConvert.SvgPlugin.SvgControl" />
</Extension>
<Extension Point="UIShell.BundleManagementOptions">
<BundleManagementOption AllowToStarted="true" AllowToStopped="false" AllowToUninstalled="false" />
</Extension>
其中Point 的属性值,不是随便定义的,它是预先定义好的,也就是说,它一定存在于另一个插件中,该插件向外公开自己的扩展点,并定义了对该扩展点进行监听的事件,如果某个插件扩展了该扩展点(或引用了该扩展点),那么定义扩展点的插件就会对扩展了该扩展点的插件自动监听,这也是OSG.NET 的特点。插件在定义扩展点的时候,使用的是 ExtensionPoint 节点,其中有Point属性,提供给其它插件进行扩展,而在扩展插件中,使用 Extension 来扩展一个定义好的扩展点,Point 属性值 就是所谓的扩展点名字(ExtensionPoint 节点中的Point属性值 )。
关于扩展点的定义如下:
<ExtensionPoint Point="PageFlowService.PageFlow" />
<ExtensionPoint Point="PageFlowService.PageNode" />
2. 查看日志文件来定位异常
OSGI.NET 框架都有运行日志记录的,如果遇到了异常或插件无法启动,这时可以查看日志文件来准确定位
3 . 相关资料
UIOSP 官网:http://www.iopenworks.com/
OSGI.NET 官网:http://osgi.codeplex.com/
OSGI.NET 插件无法启动之情景一的更多相关文章
- 分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法
在这篇文章我分享了如何使用分层与模块化的方法来设计一个分布式服务集群.这个分布式服务集群是基于DynamicProxy.WCF和OSGi.NET插件框架实现的.我将从设计思路.目标和实现三方面来描述. ...
- word插件开发 运行时,插件不启动.
word插件开发 运行时,插件不启动. 查看插件信息时. 在禁用的应用程序加载项中. 启动禁用的插件: 点击转到. 选择你要启动的插件就可以了.
- Jboot使用appassembler-maven-plugin插件生成启动脚本
appassembler-maven-plugin介绍: 使用appassembler-maven-plugin插件可自动生成跨平台的启动脚本,可省去手工写脚本的麻烦,而且还可以生成jsw的后台运行程 ...
- OSGI.NET插件方式开发你的应用
之前一直从事C# WEB开发.基本都是业务开发,性能优化. 体力活占比90%吧.模块真的很多很多,每次部署经常出先各种问题.发布经常加班. 今年开始接触winform 开发.发现C# 的事件 委托 ...
- 使用`html-webpack-plugin`插件配置启动页面
由于使用`--contentBase`指令的过程比较繁琐,需要指定启动的目录,同时还需要修改index.html中script标签的src属性,所以推荐大家使用`html-webpack-plugin ...
- OSGI.NET 插件启动方法
在使用OSGI.NET框架来开发插件过程中,有时为了测试一个插件,或运行一个插件,需要启动主个插件,如果没有主窗口程序,那么该 如何启动一个插件,而不是再开发一个主窗口程序(那样是不是太麻烦,仅仅是为 ...
- phonegap android插件,启动activity并返回值
Your execute menthod is not quite right. When you do: return new PluginResult(PluginResult.Status.OK ...
- 使用appassembler插件生成启动脚本
appassemblermaven插件可以自动生成跨平台的启动脚本,省去了手工写脚本的麻烦,而且还可以生成jsw的后台运行程序.插件官网:http://www.mojohaus.org/appasse ...
- idea下载多个插件项目启动不了解决方案
今天下载mybatis plugin插件的时候 有好多个版本的plugin,然后呢,看第二个比较热门,就下载了第二个,然后重启idea发现这个插件貌似得花钱,那算了吧,咱用第一个免费的吧,就又下载了第 ...
随机推荐
- VBA标准模块与类模块
大家通过之前的介绍,已知道怎么将一个空模块插入VBA的工程中.从插入模块中可以看到,模块有有两种——标准模块与类模块.类模块是含有类定义的特殊模块,包括其属性和方法的定义.在后面会有介绍与说明. 随着 ...
- 像装软件一样装系统 Win8下怎么装Win7
像装软件一样装系统 Win8下怎么装Win7 首先,你需要一个Windows7的ISO镜像文件,非ghost版本 一般选中ISO文件,点反键在弹出菜单中以“装载”或“window资源管理器”方式打开 ...
- TortoiseSVN使用详细步骤
1 安装及下载client 端 2 什么是SVN(Subversion)? 3 为甚么要用SVN? 4 怎么样在Windows下面建立SVN Repository? 5 建立一个Working目录 6 ...
- Flash AS 响应双击事件MouseEvent.DOUBLE_CLICK
没想到在WinForm简简单单的一个问题,在AS里会成为一个坑. 我遇到的这个问题是由于Loader没有设置doubleClickEnabled=true而导致的. 因此出现这个问题,请思考是否由于此 ...
- NeHe OpenGL教程 第三十五课:播放AVI
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- JAVA 99乘法表实例
实例: public class Test{ public static void main(String[] args){ for(int i=1;i<=9;i++){ for(int j=1 ...
- IronPython 设置包路径
C#中添加对python文件或者对python包的引用时出现"no module .."的问题时的解决办法. 对hello.py 做一些简单的修改 添加 import syssys ...
- [ActionScript 3.0] Away3D 天空盒(skybox)例子2
所谓skybox就是六个面即六张图能够无缝的拼成一个正方体的盒子. package { import away3d.cameras.Camera3D; import away3d.cameras.le ...
- 使pre的内容自动换行
<pre> 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre> 标签的一个常见应用就是用来表示计算机的源代码 ...
- ckfinder的配置使用
1.单纯的上传图片和预览图片 修改configasp中CheckAuthentication = true; 否则的话会报没有权限或修改配置错误 此时如果可以查看的话,单击图片应该是放大并且预览图片 ...