1

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

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

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

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

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

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

4

1 回答 1

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 中有另一个条目(而不是在 Empty 项目中)

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

我假设你做的时候需要

调试->启动新实例

但是,您还需要其他一些东西,例如对System.ServiceModel.

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

于 2013-02-05T00:54:14.903 回答