【问题标题】:Is there a way to suppress VS trying to go online?有没有办法抑制 VS 试图上网?
【发布时间】:2011-10-10 11:07:00
【问题描述】:

如果已配置解决方案与 TFS 的绑定,当您打开解决方案时 VS 会询问您:

---------------------------
Microsoft Visual Studio
---------------------------
Go Online

This solution is offline but its associated Team Foundation Server is available.

Would you like to go online with this solution after it has loaded?
---------------------------
Yes   No   Help   
---------------------------

或者,如果 TFS 不可用,它会建议选择暂时脱机工作或完全删除绑定。

有没有办法抑制这些对话框?

给你一些背景。我们团队的一部分直接使用 TFS,另一部分则通过 git-tfs 工作。使用 git-tfs 时 - 我根本不需要在线模式。所以每次我打开一个解决方案或在解决方案中重新加载一个项目时——我应该一遍又一遍地回答同样的问题。但是我无法删除绑定,因为直接使用 TFS 的人将失去无缝连接到 TFS 的能力。

【问题讨论】:

    标签: visual-studio tfs git-tfs


    【解决方案1】:

    tfpt 中的连接命令(它是 2008 tfpt 中的tweakui)是否可以满足您的需求?您可以将服务器(实际上是2010年的集合)标记为离线VS。

    降压

    【讨论】:

      【解决方案2】:

      VS 2012 不显示此对话框,而是将一些有关 TFS 不可用的信息写入输出,这是可以接受的。

      对于 VS 2010 和 VS 2008,最烦人的事情是,有时每个项目都会显示此对话框,即如果您有 30 个项目在解决方案中 - 您必须在每个解决方案打开时单击“确定”30 次。对于这些,我可能会假设一个部分解决方案 - 在您的解决方案的根文件夹中创建一个名为“ProjectConfiguration.xml”的文件,其中包含以下内容:

      <?xml version="1.0" encoding="utf-8"?>
      <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
        <PropertyGroup>
          <SccProjectName>SAK</SccProjectName>
          <SccLocalPath>SAK</SccLocalPath>
          <SccAuxPath>SAK</SccAuxPath>
          <SccProvider>SAK</SccProvider>
        </PropertyGroup>
      </Project>
      

      然后,在每个 *.csproj 文件中,删除所有 SccXxx 元素并添加这一行(作为一级 XML 节点,不在 PropertyGroup 中):&lt;Import Project="$(SolutionDir)ProjectConfigurations.xml" /&gt; 之后 VS 只触发一次对话框。此外,如果您像我一样正在使用 git,您可以发出 git update-index --assume-unchanged 'ProjectConfigurations.xml' 并评论这些行而不提交它们(assume-unchanged 基本上命令 git 忽略更改,即使文件已被跟踪 - here 是这个选项)。

      附:我们还在这些文件中包含了一些其他选项,例如&lt;TreatWarningsAsErrors&gt;true&lt;/TreatWarningsAsErrors&gt; - VS 和 MSbuild 都能完美处理。

      【讨论】:

        【解决方案3】:

        我不知道抑制这些对话框的方法,但您始终可以对解决方案文件进行更改以删除绑定,而无需将其签入以影响其他开发人员。我知道当本地编辑(未检出)文件发生大量更改时,这有时会很烦人,但解决方案文件可能并非如此。

        【讨论】:

        • 不仅解决方案受到影响。每个项目都有绑定。此外,如果更改的文件已经被跟踪,git 不会忽略它们,即使它们在.gitignore 中列出(至少我不知道这样做的方法)。
        • 更不用说,即使你成功了,git 也不会接受你对项目/解决方案文件的预期更改。
        【解决方案4】:

        就我而言,我所做的是在文本编辑器中打开 sln 文件,然后查找“GlobalSection(TeamFoundationVersionControl)”并将该部分一直删除到相应的“EndGlobalSection”行。 (不是最后一个,而是第一个 GlobalSection(TeamFoundationVersionControl) 行之后的那个)

        然后我重新加载了解决方案,它不再要求连接到 TFS(我们没有...它被我们雇用的承包商所使用,我们获得了包含 TFS 信息的源代码) .

        轻而易举。

        【讨论】:

          猜你喜欢
          • 2010-09-16
          • 2010-10-28
          • 2013-12-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-18
          • 2016-11-03
          相关资源
          最近更新 更多