我会尝试尽可能地直截了当。
问题是,当从项目中删除文件时(通过在VS2008中删除它),下次另一个开发人员(不是删除它的人)签入时,会提示他们签入这些已删除的文件,因为他们仍然在他们的本地机器上有一份副本。
有解决方法吗?让VSS指示客户端计算机删除这些文件而不提示他们重新登录?这是什么首选方法?
编辑注释:
答案 0 :(得分:5)
你唯一的办法是停止使用网站项目。网站项目使visual studio自动将它在项目路径中找到的任何内容添加到项目中。
相反,请转到没有此行为问题的Web应用程序项目。
网站项目有利于单人开发。
<强>更新强>
从过去的日子开始,VB商店出现了类似的问题,因为无论安装什么,都会影响构建过程。您可以从他们的剧本中获取一个页面并拥有一个“干净”的构建机器。在进行部署之前,您将删除所有项目文件夹,然后执行最新操作。通过这种方式,您可以确保部署的唯一内容就是源代码控制中的内容。顺便说一下,这也是TFS Build服务器的工作方式。它删除工作区,然后创建一个新工作区并下载必要的项目文件。
此外,您可以考虑使用Cruise Control之类的东西来处理构建。
答案 1 :(得分:1)
也许开发人员应该注意只检查或添加他们一直在做的事情。如果他们正在添加他们甚至不使用的东西,那就是它的草率。
答案 2 :(得分:0)
您最好的解决方案是切换到更好的版本控制系统,如SVN。
在我的工作中,我们最近从一家外包公司获得了一个项目,该公司确实使用VSS作为其版本控制。我们能够从VSS将所有更改历史记录导入SVN,并在此时使用SVN快速启动并运行。
使用SVN,您可以设置文件和文件夹的忽略,因此您的Web项目中的文件不会被放入SVN,并且忽略属性会被检出到每个开发人员的计算机上
我相信我们使用VSSMigrate迁移到SVN http://www.poweradmin.com/sourcecode/vssmigrate.aspx
答案 3 :(得分:0)
VSS是一个糟糕的版本控制系统,您应该切换到SVN,但这与问题的症结无关。项目文件包含对实际属于项目的文件的引用。如果没有检查visual studio项目及其更改,则任何其他开发人员都无法完全更新,因此查询在从VSS获取最新文件时删除文件。从那里你有多种选择......
使vbproj成为存储库的一部分。任何项目级别的更改都将成为提交的一部分,并且可以通知其他开发人员。这里的问题是它也将在开发服务器上。理想情况下,您可以使用接近同一进程来部署到dev,就像部署为release一样。这导致另一种方式......
SVN为几乎所有重大事件提供了钩子,其中钩子实际上只是一个正确命名的批处理文件/ exe。出于您的目的,您可以使用提交后挂钩在每次提交时将相应的文件(例如通过ftp)推送到服务器。文件问题得到解决,更重要的是更接近持续集成的概念。
答案 4 :(得分:0)
您可能想要考虑做的事情:
它是一个手动过程,但它可能会给你想要的结果,如果VS谈到已删除的文件,你知道它们应该在步骤1中从本地机器中删除。