2010-09-05 60 views
8

我面临的问题是,似乎由Visual Studio生成的一些文件不需要提交。我应该提交哪些由Visual Studio生成的文件?

除了显而易见的事情不提交,我不应该提交什么其他文件?我需要提交.manifest文件等吗?

不同的说法:需要什么文件来重新创建我正在处理的项目以及哪些文件可以自动生成?

谢谢!

+0

*除了明显的事情不承诺* - 对于那些可能不明显的人,你能解释一下你指的是哪些文件吗?有些人可能会发现这些信息很有用。 – 2010-09-05 08:26:37

回答

4

我通常不会提交的文件是:*.suo*.user。我承诺大部分其他文件。

二进制文件可以提交或不提交,具体取决于您的公司政策。从理论上讲,应该能够从源代码中再次重新创建它们,但实际上最好拥有发送给客户的任何东西的精确副本。所以至少在发布二进制文件时应该承诺。

+1

我的确切答案。 +1 – 2010-09-05 08:15:12

+3

如果您确实选择提交二进制文件,您可能希望将它们提交到源代码树中的其他位置,而不是放在源代码旁边。例如在Subversion中,你可以在'branches /','tags /'和'trunk /'旁边创建一个'delivery /'目录。 – 2010-09-05 08:19:46

+0

非常感谢您的简洁回答!感谢您的评论,Greg Hegwill。 – 2010-09-06 17:58:46

2

一般来说,它有点难以专门列出文件,因为它取决于你有什么样的项目和工具,如果你使用自动生成代码。

在一般情况下,文件名为.suo的东西,是特定的用户和不应该在被检查。

但是,我可以建议你是

  1. 不要签任何文件的最简单方法你不确定你需要什么。
  2. 将源控件中的所有文件复制到新的位置。
  3. 构建解决方案。

如果它建立,很好。如果没有,那么你添加文件直到它。

这是一个试验和错误,但很可能它只会是一次性的事情。

其他选项是实际找出每种类型的未知文件到底是什么,然后决定是否需要,并相应地排除/包含。 为此,如果您发布了您不确定的文件的扩展名,Google或SO可以提供帮助!

就我个人而言,我根本不相信提交二进制文件,即使是发布。对我来说似乎没有必要,因为在我们的例子中,每个版本都有一个与之相关的标签。因此,获取已发布的确切代码只是获取与标签关联的代码并构建它的问题。 此外,由于部署通常是通过安装文件进行的,只要您有安装msi/exe(并且只要您为发布版保留备份),将所有二进制文件签入源代码管理似乎有点过分

+0

如果您从客户站点获得崩溃转储,那么我认为您可能需要原始可执行文件和'* .pdb'文件:重新编译不会重现原始文件,因为无法将符号加载到调试器中。 – ChrisW 2010-09-05 08:46:58

+0

@ChrisW - 您能否详细说明“不会重现原始文件,将符号载入调试器”?恐怕我不太明白这一点。如果出现错误,您是否依靠日志查明故障点和错误原因,然后使用类似的数据+相同代码的重新编译版本重现它 - 复制该场景?我在这里错过了什么吗? – InSane 2010-09-05 09:19:14

+0

至少使用C++(我还没有用.NET试过),如果客户机器上有未处理的异常,那么你可以从它/它们中获得'崩溃转储'。他们向您发送崩溃转储,然后您可以在自己的机器上进行调试。为了在你的机器上进行调试并获得符号(源代码)调试,你需要和在发生原始崩溃的机器上运行相同的代码/内部版本(在你的机器上):它必须是完全相同的版本我认为调试器使用编译器插入的时间戳来确定两个版本是否相同)。 – ChrisW 2010-09-05 09:33:58

相关问题