【VS Shell Integrated】在VS.Net 2008的 Integrated Package 中使用WCF (1)

通常我们开始一个WCF项目时都很顺利,创建WCF服务项目,创建客户端项目,在客户端项目中添加对WCF服务的引用,然后写个MessageBox或Console.Wirte,然后F5,OK,大功告成.

可是这个美好的体验在Shell Integrated开发时被打破了.

 

在我的Shell Integrated项目中准备使用WCF,虽然项目复杂度增加了,但也算是个练手吧.

 

我添加了一个WCF服务库项目,然后生成项目,然后在插件中添加对它的引用,然后调用默认的GetData()方法,可是始终报以下错误:

在 ServiceModel 客户端配置部分中,找不到引用协定“ServiceReference1.IService1”的默认终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素中找不到与此协定匹配的终结点元素。

image

难道是WCF服务库项目不行,于是换成WCF 服务应用程序项目,结果还是同样的问题.

于是创建一个普通的WCF+WPF项目,结果没有问题. 这说明这个问题就和Shell Integrated这种项目类型有关系.

 

GOOGLE了一下,有的说是WCF配置节点有问题,有的说是没找到配置文件,都试试,最后感觉还是系统没找到配置文件,但是看一下生成目录,*.config配置文件也在.那配置文件究竟放在哪儿呢?

放在.NET 缓存目录?可不知道开发时插件的缓存目录在何处,或许根本没有缓存目录.

 

后来想,配置一般都放在和应用程序同名的config文件中,虽然这是插件程序,但运行时的主程序还是devenv.exe,难道要放在它的配置文件中?到devenv.exe的目录下,果然有devenv.exe.config文件,打开它,然后把插件app.config中自动生成的WCF配置节点复制到devenv.exe.config的configuration节点下,保存,然后运行插件程序,终于看到期盼已久的: You Enter 1. 噢耶!

image

虽然成功了,不是还是感到有点悬, 虽然可以在devenv.exe.config中添加WCF配置,但这不是终级方法,应当可以有更好的方式,避免修改devenv.exe.config.

posted on 2010-03-01 14:24  Apollo Sun  阅读(1103)  评论(4编辑  收藏  举报

导航