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

标签 c# .net wcf

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

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

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

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

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

最佳答案

我们使用了两个选项:

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

我们通常会忽略“Service References”文件夹中的整个文件夹。

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

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

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

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

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

关于c# - WCF 服务 - 哪些部分可以从源代码管理中排除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50151088/

相关文章:

c# - 结束线程构造

.net - QTAgent32.exe 已停止工作

wcf - ServiceRoutes 在 WCF 中不起作用

c# - WCF 和 DTO 的大小

描述无效的 C# 枚举

c# - 当单独触发每封电子邮件时,如何避免向同一个人发送多封电子邮件

Linux 上的 .NET Core - LLDB、SOS 插件 - 诊断内存问题

WCF 常见类型未重用

c# - 通过 WCF 发送通用存储库的最佳方式是什么?

c# - 在 C# Windows 应用程序中使用 Web 服务