Visual Studio 发布配置文件 - 为什么不跟踪源代码控制?

16

我正在探索部署ASP.NET Web应用程序的选项,通过创建发布配置文件,当我注意到.gitignore文件中包括.pubxml文件(我一直在使用这个文件):

https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

搜索一番后,推理是因为发布配置文件中的引用或引用本身包含绝对路径或其他信息,这些信息可能仅在本地开发计算机上有效。

有人可以确认这种排除背后的原因吗?

3个回答

10
我无法确认这个推理,但我可以告诉您我们的做法。由于我们中的任何人都可以发布到 DEV 或 TEST 环境,所以我在源代码控制中包括了 .pubxml 文件。我甚至检查了文件本身,没有看到任何本地路径。但是请考虑到我们使用 Web Deploy,只要我们所有人都可以访问相同的服务器进行部署,那么就没有问题。
因此,我认为这取决于您使用的部署设置以及您的团队是否都可以访问相同的服务器。
我们的 .pubxml 文件中没有存储凭据和本地路径。

这是我无法理解的地方。如果它是一个Web部署配置文件,那么它就是URL加上服务器详细信息。如果是FTP部署,那么仍然只需要服务器详细信息。如果是文件系统,那么用户为什么不能指定一个UNC路径,只要所有开发机器都在同一个网络上就可以了呢? - Scott Oliver
没错。我可以理解为了开发目的而将代码发布到本地机器上,或者有些人直接在托管他们应用程序的机器上工作。但根据我的经验,这不是正确的做法。如果有人需要一个不同的测试环境发布设置,那么我会创建一个相应命名的额外设置。 - fkm71

9

来自 Microsoft 文档(适用于 ASP.NET Core 2.2 及以上版本)-

发布到 Azure 目标时,.pubxml 文件包含你的 Azure 订阅标识符。对于这种目标类型,不建议将此文件添加到源代码控制中。发布到非 Azure 目标时,安全起见可以将.pubxml 文件列入源代码控制。

敏感信息(例如发布密码)是以用户/机器级别加密的。它们存储在.pubxml.user 文件中。由于该文件可能存储敏感信息,因此不应将其列入源代码控制。


0

这是正确的。这些发布配置文件具有本地设置,如部署目标路径,可能因不同系统而异。因此,这些文件始终仅保留在本地。


“这些文件始终只保留在本地”,其实并不完全是这样。我们的发布配置文件仅包含环境名称,我们会将其提交以便构建服务器在构建和部署过程中使用它。 - cederlof

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接