.net 忽略挂起更改中的某些文件

.net 忽略挂起更改中的某些文件,.net,visual-studio-2010,tfs,.net,Visual Studio 2010,Tfs,这是我的问题。我已经更改了解决方案中的某个文件(比如Web.config),并且永远不想签入,因为这些更改只涉及我的机器。是否有一种方法可以在TFS中表示忽略某个文件中的更改,并将其从“挂起的更改”窗口中删除。当然,我可以在每次签入时跳过此文件,但总有一个更改会导致忘记和错误签入。例如,AnkhSVN中有一个类似的忽略列表 没有什么可以忽略的,但最好的是,签入后,您可以使用基于web的登录或其他未映射源代码树的计算机,您可以从源代码树中删除不需要的文件,visual studio下次修改这些文件

这是我的问题。我已经更改了解决方案中的某个文件(比如Web.config),并且永远不想签入,因为这些更改只涉及我的机器。是否有一种方法可以在TFS中表示忽略某个文件中的更改,并将其从“挂起的更改”窗口中删除。当然,我可以在每次签入时跳过此文件,但总有一个更改会导致忘记和错误签入。例如,AnkhSVN中有一个类似的忽略列表

没有什么可以忽略的,但最好的是,签入后,您可以使用基于web的登录或其他未映射源代码树的计算机,您可以从源代码树中删除不需要的文件,visual studio下次修改这些文件时将不会签入这些文件


您还可以将文件放在文件夹中,并在xml编辑器中修改项目文件以将文件包含在项目中,visual studio不会将通过编辑项目文件的xml手动添加的文件添加到源代码控制中。

对于我们在VS 2005/2008中的工作,我们启用了多个签出,并且我们从不签入web.config

为了避免麻烦,我们试图做一些古怪的事情,但却没有签入一些东西,我们只是从不签入。在奇怪的情况下,其中一个文件被检入,这是一个快速的“嘿,伙计们,我搞砸了”

另一方面,您可以告诉TFS从源代码管理中排除文件。这将需要存在于所有计算机上,因为解决方案/项目仍将查找该文件

您还可以修改.SLN/project文件。
我在测试项目中使用了这种方法,我不想为了运行我自己的测试而修改其他人的测试,所以我从TFS中删除了我的测试项目,同时保持其他人的完整性

您使用的是哪个版本的studio

如果您使用的是2010,那么您可以使用web配置转换。这样,您就可以根据环境拥有不同的web.config文件。例如,开发、测试、生产


如果你在2008年,我们通常有一个主web.config文件指向我们的开发人员,还有一个web.production.config文件指向生产。在部署期间,我们删除web.config并重命名web.production.config。

关于配置文件、TFS和不同开发人员机器的最佳实践是(hem)

所有开发人员都应该拥有相同的开发环境。这是在TFS中管理web.config文件的唯一方法,并且它还有许多额外的好处:

  • Nomore“但它在我的电脑上工作”

  • 它的朋友害怕地说:“我不明白需要什么依赖项。它不再编译了。”

  • 你不会后悔著名的“啊!我忘了告诉你,我发明了一个MyWonderfullApplicationConfigSection,你应该在你的web.config中定义它,但我不会告诉你怎么做。”

  • 它将真正有助于建立构建环境或部署


好吧,这并不容易,我知道不同的开发者喜欢不同的设置。。。但是标准化开发平台是个好主意。这真的很值得。

一个解决方法是在windows资源管理器中删除web.config上的readonly属性,然后在记事本中编辑它:

  • 它不会出现在挂起的列表中 变化
  • 它仍然在源头 控制

丑陋但简单的解决方案。

可以将
{app,web}.config
文件的某些部分委托给另一个文件。尤其是

app.config
web.config
中:

<connectionStrings configSource="LocalConnectionStrings.config" />

因此,每个开发人员都有一个
LocalConnectionStrings.config
,它位于项目中,但不在源代码管理集中,并带有他们的私有设置,而
{web,app}.config
具有共享设置。不幸的是,这只适用于有限的一组系统定义的配置元素。

您可以复制不想签入的文件,撤消其签出,并用副本替换它们。由于更改是从外部VS进行的,因此不会签出,因此不会出现在挂起的更改列表中


(我知道这是一个老问题,但我相信有人在寻找解决方法时可以使用此答案)

我也考虑过此变体,但此文件应在源代码管理下。没有办法排除它,因为这会破坏其他一些功能。正如我所说的,“嘿,伙计们,我搞砸了”不适合我(确切地说,我现在正在这样做,但我寻找更方便的方式)。从源代码管理中排除该文件也不是一个选项。链接已终止。不在archive.org中。痛苦的是,“这可能会让一些人感到惊讶,但我以前的所有内容都消失了。我以前写的所有东西,2004-2014年的整个十年,都不再可用。没有帖子,没有评论,什么都没有。”谁说网上的公共内容不会消亡?;^)我使用的是2010,但更改是特定于机器的,而不是特定于环境的。例如,对于dev环境,dev的web.config对于我的每个同事都是不同的。@anthares:我猜你们每个人都在运行自己的本地sql server?您可以基于转换思想,只需为每个开发添加一个配置。。或者,只需使用相同的设置即可。就我个人而言,在处理了这两种环境中的问题后,我更喜欢使用常见的SQL server方法。。。这似乎不那么麻烦。如果您选择允许编辑,您可以在VS中编辑而不必签出。。。工具|选项|常规|文档中的选项。请注意,此技巧不适用于TFS 2012+中的“本地工作区”-1个坏主意。如果您有一个多层体系结构,它使用web配置来确定wsdl端点,该怎么办?错误邮件呢?开发人员不喜欢批编译,那又如何呢?在许多情况下,标准化dev web配置是不可行的。我说过这并不总是容易实现的。然而,你应该注意,如果你有斯坦
<connectionStrings>
    <!-- For the application's operations. -->
    <add name="Application"
         connectionString="Data Source=server;Initial Catalog=database;Integrated Security=True;Network Library=dbmssocn"
         providerName="System.Data.SqlClient" />
</connectionStrings>