TFS - 用于实验开发的分支:解决方案无法加载

时间:2008-09-03 20:21:15

标签: version-control tfs

免责声明:我坚持使用TFS,我讨厌它。

我的源代码控制结构如下所示:

  • 的/ dev
  • /释放
  • /分支
  • /实验升级

我从开发分支到实验升级并且没有触及它。然后我在开发中做了一些工作并合并到实验升级。不知怎的,TFS抱怨我在源和目标方面都有变化,我不得不解决它们。我为所有5个项目选择了“从源分支复制项目”。

我查看实验升级到本地文件夹并尝试在那里打开主解决方案文件。 TFS提示我:

  

“最近已将项目添加到此解决方案中。您是否希望从源代码管理中获取它们?

如果我说是,它会做一些事情,但最终还是没有加载一些项目。如果我说不,我会得到相同的结果。

比较我在两个分支中的sln告诉我他们是平等的。

任何人都可以让我知道我做错了什么吗?这应该是一个简单的分支/合并操作......

TIA。


更新

我注意到如果我在上面的对话框中单击“是”,项目将被下载到源控件的$ / root ...(即在dev& branches文件夹之外)

如果我在分支中打开解决方案并删除死项目并尝试重新添加它们(通过右键单击sln,添加现有项目,选择位于分支文件夹中的项目,它会给我错误..

  

无法加载项目c:\ sandbox \ my_solution \ proj1 \ proj1.csproj,该文件已被删除或删除。我试图添加的项目路径是:c:\ sandbox \ my_solution \ branches \ experimental-upgrade \ proj1 \ proj1.csproj

世界上有什么人将这些项目指向其本地根目录?解决方案文件与dev分支中的解决方案文件相同,并且这些项目加载得很好。我还查看了vspscc和vssscc文件,但没有找到任何内容。

想法?

6 个答案:

答案 0 :(得分:2)

@Ben

您实际上可以在TFS中执行完全删除,但除非您知道自己在做什么,否则强烈建议不要这样做。您必须使用命令tf destroy

从命令行执行此操作
tf destroy [/keephistory] itemspec1 [;versionspec]
           [itemspec2...itemspecN] [/stopat:versionspec] [/preview]
           [/startcleanup] [/noprompt]

Versionspec:
    Date/Time         Dmm/dd/yyyy
                      or any .Net Framework-supported format
                      or any of the date formats of the local machine
    Changeset number  Cnnnnnn
    Label             Llabelname
    Latest version    T
    Workspace         Wworkspacename;workspaceowner

在您执行此操作之前,请务必使用/ preview进行尝试。每个人都有自己的分支方法。我的是分支版本,并在开发或根文件夹中进行所有开发。它听起来像分支工作正常,只是解决方案文件搞砸了,这可能是因为绑定问题和vssss文件。

答案 1 :(得分:0)

@Nick:尚未对此进行任何更改。我可能必须删除它并重新分支(但是你真的不能在TFS中完全删除)

我不得不反对......分支绝对是实验性改变的好习惯。搁架只是临时存储,如果我不想办理登机手续,将会备份。但这需要在我们开发真实功能的同时得到发展。

答案 2 :(得分:0)

在不了解您的解决方案设置的情况下,我无法确定。但是,如果您有任何项目参考可以解释它。因为您在“分支”下有“实验升级”子文件夹,所以相对路径已经改变。

这意味着当VS用于在.. \ .. \ project \中查找您引用的项目时,它现在必须查看.. \ .. \ .. \ project \ whatever。请注意额外的.. \

要解决此问题,您必须重新添加项目引用。我还没有找到更好的方法。您可以删除它们并重新添加它们,也可以转到属性窗口并更改它们的路径,然后重新加载它们。无论哪种方式,您都必须从任何项目中重做对它们的引用。

另外,请检查您的工作文件夹,确保它没有将您的任何项目下载到错误的文件夹中。有时会发生这种情况......

答案 3 :(得分:0)

有几件事。文件夹结构是否相同?你能成功删除和读取项目引用吗?

如果您创建解决方案然后手动添加所有项目,那么这是否有效。 (这可能不太可行 - 我们有超过一百个项目的解决方案)。

另一件事(可能是愚蠢的) - 在你做完分支之后,你做了吗?我想知道你是否分支并且没有检查,然后合并,然后当你试图办理登机手续时,TFS非常困惑。

答案 4 :(得分:0)

@Kevin:

  

这意味着当VS用于在.... \ project \中查找您引用的项目时,它现在必须查看...... \ project \ whatever。请注意额外的.. \

你可能会在这里找到一些东西,但是它并没有解释为什么有些项目会加载而其他项目却没有。我还没有找到他们之间的相关性。

我想我会尝试重新添加项目,看看是否有效。

答案 5 :(得分:0)

@Cory:

我认为这就是我要尝试的...我有大约20个项目,大约8个没有加载。文件夹结构与root相同...即:DEV之外没有任何引用。