WCF服务 - 哪些部分可以从源代码管理中排除?

时间:2018-05-03 09:07:24

标签: c# .net wcf

使用WCF服务处理项目。该项目采用git源代码控制。

为了使这个项目的本地构建工作,我不得不进行配置更改,基本上url端点更改到每个服务。

目前似乎与服务相关的每个文件都在源代码管理中

*。wsdl,*。xsd,* .svcinfo,reference.cs,* .disco,* .svcmap等。

这当然是一个噩梦,因为我不想将这些文件推送到回购。那么哪些wcf服务相关文件可以从git中排除?

2 个答案:

答案 0 :(得分:0)

这是wcf的某个项目示例,请查看gitigonre文件 https://github.com/AmaelN/sample.wcf/blob/master/.gitignore

答案 1 :(得分:0)

我们使用了两种选择:

  1. 忽略整个服务引用文件夹
  2. 忽略除References.svcmap之外的所有内容
  3. 我们通常会忽略"服务参考"中的整个文件夹。夹。

    这意味着当您提取repo的干净副本时,您将在项目中看到服务引用(因为它是.csproj的一部分),但如果您尝试更新或配置它将会引发错误。任何开发人员第一次使用新机器时,他们必须删除服务引用并通过VS重新添加它。

    我们的项目是以这种方式设置的,因为开发人员通常针对他们自己的服务版本(或者针对多个开发者的问题的常见版本)进行开发。 Reference.svcmap具有服务地址,因此这将在使用托管在repo的Reference.svcmap的不同位置的服务的任何开发机器上显示为git中的挂起更改。

    如果使用该repo的每个人使用相同的服务(或者仅在分支之间更新服务位置),则可以保留Reference.svcmap文件。然后开发人员只需要从VS更新服务引用以生成所有其他文件。

    对这些解决方案中的任何一个的警告是,根据我的经验,生成的文件不会始终匹配,即当您更新/重新添加服务引用时,VS可能会将生成的文件命名为 filename 1.xsd而不是 filename .xsd。 (也许其他人知道是什么原因造成的)。然后在带有服务引用的.csproj文件的git的未提交更改中,您将得到以下数字:

    -    <None Include="Service References\ServiceRef\System.Drawing.xsd">
    +    <None Include="Service References\ServiceRef\System.Drawing1.xsd">
    -    <None Include="Service References\ServiceRef\service.xsd">
    +    <None Include="Service References\ServiceRef\service1.wsd"/>
    

    在我们的案例中,我们只是放弃了这些更改(到目前为止还没有破坏任何内容)。