1
9
通过向解决方案资源管理器添加一个新文件,您将得到一个小加号,指示该文件将被添加到源代码管理中。然后,右键单击并选择“撤消挂起的更改”。这将取消添加,但将文件保留在项目中。 如果这不起作用,我建议采用以下方法之一:
|
2
3
您应该将文件保留在源代码管理中。否则你会遇到几个问题:
请注意,单个文件的状态完全存储在TFS服务器上。('tf properties'转储此元数据,如果您好奇的话)只有项目和解决方案具有实际写入文件的绑定。即使这些都是虚拟条目,告诉vs“不要担心我,只要问tfsprovider,它就会知道我是谁和我应该在哪里。”虽然vs项目系统中有许多其他的怪癖,给我无尽的头痛,在这种情况下,它是你的朋友。不要绕开它。 最佳选择:
选项1的优点是可以快速修复现有设置。缺点来自于维护web.config.*的多个副本。复制/粘贴代码不好的原因相同:如果更改了一个副本,则必须更改所有其他副本——或者更糟的是,忘记并让它们偏离同步,直到奇怪的错误迫使您重新访问该问题。这可以通过更改进程来改进,使只有1个“master”web.config,而其他副本只包含差异(通过文本差异引擎、XSLT转换、PowerShell中的编程操作等)。当然,这是更多的工作。 选项2避免了1的问题,开销很小。(工程过程本身是不变的;唯一的区别是Visual Studio UI的行为方式)如果您经常更改web.config,那么这种优势是至关重要的。缺点是没有内置的方法来跟踪“主”文件上的变化。如果唯一的区别是非常简单的,例如一两个连接字符串,那么您可能会发现只使用一个“主”并让人们在他们的开发机器上进行特别的更改是最容易的。甚至还有一些工具可以为您做到这一点,例如 Web Deployment Projects (容易)和 IIS Deployment Tool (复合体)。当然,在任何情况下,您的实际部署都应该是自动化的和源代码控制的!如果需要比这些工具能力更重的定制,那么您可能需要前面描述的混合主+转换方法。 |
3
0
我最近碰到这个问题,找不到一个好的解决办法。经过一次小小的尝试和错误,我自己就能够解决这个问题。 这适用于Visual Studio 2015。我试着按照上面的答案,但是2015年没有“排除在源代码管理选项之外”我可以找到。它确实具有源代码管理/项目集成,如果您从源代码管理或项目中删除文件,它将自动从这两个位置删除。当您打开包含项目的解决方案时,将强制执行此集成。 问题是,当使用web.template.config时,web.config实际上是一个生成输出,不应该在源代码管理中。但是,完全删除文件并将其从项目中删除会导致问题,因为该文件不是生成/发布步骤的一部分。 结果证明,这项工作很简单:
我做了更多的检查,发现了“从源代码管理中排除”功能。关键是,在选择菜单项之前,需要在“解决方案资源管理器”窗口中选择该项:
|