【问题标题】:WCF service - which parts can be excluded from source control?WCF 服务 - 哪些部分可以从源代码控制中排除?
【发布时间】:2018-05-03 09:07:23
【问题描述】:

使用 WCF 服务处理项目。该项目在 git 源代码管理中。

为了让这个项目的本地构建工作,我必须对配置进行更改,基本上是对每个服务的 url 端点更改。

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

*.wsdl、*.xsd、*.svcinfo、reference.cs、*.disco、*.svcmap 等

这当然是一场噩梦,因为我不想将这些文件推送到 repo。那么git可以排除哪些wcf服务相关的文件呢?

【问题讨论】:

标签: c# .net wcf


【解决方案1】:

我们使用了两个选项:

  1. 忽略整个服务引用文件夹
  2. 忽略除 References.svcmap 之外的所有内容

我们通常会忽略“服务引用”文件夹中的整个文件夹。

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

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

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

这些解决方案的一个警告是,根据我的经验,生成的文件并不总是匹配,即当您更新/重新添加服务引用时,VS 可能会将生成的文件命名为 filename em> 1.xsd 而不是 文件名.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"/>

在我们的例子中,我们只是丢弃了这些更改(到目前为止还没有破坏任何东西)。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 此文件不包含与此帖子​​相关的任何文件。
    猜你喜欢
    • 1970-01-01
    • 2020-08-17
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多