如何在VS 2010中向控制台应用程序添加设计时服务引用?

时间:2011-02-07 10:12:06

标签: c# wcf visual-studio-2010

我正在尝试创建一个简单的WCF应用程序。我的服务接口和实现都在类库中。我编写了一个非常简单的控制台应用程序,它充当服务器主机。

现在我已经创建了一个silverlight客户端,我正在尝试使用控制台应用程序中的App.config添加服务引用,但配置的服务未显示在Discover-> Services In Solution中。

如果我创建一个包含我的服务的WCF类库,它们会显示出来,但不会显示带有app.config的普通类库。

我可以运行控制台应用程序然后添加服务引用,但这看起来有点笨拙。

添加设计时服务引用有哪些规则?

修改

项目对设计时发现的可见性似乎由以下项目类型控制:

{3D9AD99F-2412-4246-B90B-4EAA41C64699}; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}

(将这些添加到csproj要求它至少包含一个服务)。

另一条规则似乎是服务类型必须与引用它们的app.config位于同一个程序集中。

1 个答案:

答案 0 :(得分:0)

我相信Visual Studio在您的解决方案中使用不同的项目类型(存储在解决方案/项目文件中的元数据或两者)以识别潜在的候选项。如果你创建一个控制台应用程序,Visual Studio不会把它当作可能包含服务引用的对待,虽然我认为你已经想到了,但是在项目创建之后更改目标类型并不是这样。似乎有这种效果,因为它不会使元数据无效。

创建两个新项目,每个项目一个,并使用diff工具或记事本比较两个文件。查看是否复制项目之间的更改并重新加载(甚至重新启动VS)会更改此行为。