如何将基本类库转换为WCF服务库

时间:2013-02-05 00:35:13

标签: wcf visual-studio

我试图复制现有WCF服务库的功能,以将其用作新WCF服务库的模板。由于我要剪切并粘贴我需要的所有代码,并且我不希望它创建默认服务存根,所以我没有使用内置的“WCF服务库”项目模板启动它。我刚刚使用“空项目”模板向我的解决方案添加了一个新的空白项目。

然后,我为我的项目创建了两个新的空白.cs代码文件,以保存我的服务的接口和类,并从我原来的WCF服务库项目中复制/粘贴了接口和类代码,并进行了我需要的更改制作。

新项目编译得很好,但是......

1)如果我进入项目属性,则不会出现“WCF选项”部分,就像我在原始WCF服务库中一样。

2)使用原始WCF服务库项目,我可以右键单击它并选择Debug-> Start New Instance,它将使用WCF服务主机自动启动它。对于新项目,如果我尝试,它说,“无法直接启动具有类库的输出类型的项目。”

我如何让Visual Studio(我使用2012 Professional)将此项目视为真正的WCF类库,而不是重新开始并使用“WCF服务库”项目模板?

1 个答案:

答案 0 :(得分:3)

您错过了project文件

中的ProjectExtensions部分

这来自我的一个VS2010项目。

  <ProjectExtensions>
      <VisualStudio>
      <FlavorProperties GUID="{3D9AD99F-2412-4246-B90B-4EAA41C64699}">
        <WcfProjectProperties>
          <AutoStart>True</AutoStart>
        </WcfProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>

如果我删除它,WCF Options属性部分会消失。

编辑:

我将Empty项目与WCF服务库进行了比较,发现您还需要将其添加到项目中以使WCF选项显示在项目属性中

<ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>

WCF中有另一个条目(而不是在空项目中)

<StartArguments>/client:"WcfTestClient.exe"</StartArguments>

我需要

  

调试 - &gt;启动新实例

然而,您还需要其他内容,例如对System.ServiceModel的引用。

老实说,我认为你最好使用正确的WCF Service Library模板并删除你不想要的东西,而不是试图找出你需要的东西。