TFS和本地文件夹权限问题

时间:2010-07-16 14:26:24

标签: visual-studio-2010 tfs2010

环境:VS 2010,Windows 7,TFS

我有一个解决方案1,带有名为Binaries的解决方案填充程序(这是本地的物理路径 计算机,说它是c:\ Binaries):我把所有外部assesmblies放在这个文件夹中。

在另一个解决方案2中,对于此解决方案中的每个类库项目,将property-&gt; build-&gt;输出路径设置为c:\ Binaries,以便解决方案1中的任何项目都可以引用这些程序集的最新版本< / p>

工作正常。

现在我将solution1和solution2放到TFS中,所有这些都在TFS源代码控制下,包括Binaries文件夹。

现在我再次打开解决方案2并构建解决方案2,它为每个类库项目提供了权限错误,如:

错误49无法将文件“obj \ Debug \ mycomponent.dll”复制到“.... \ Binaries \ mycomponent.dll”。访问路径'.... \ Binaries \ mycomponent.dll'被拒绝。

但是如果我在c:\ Binaries上检查windows 7中的权限,没问题。 所以它应该是VS 2010或TFS的错误。

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

虽然我不是源代码控制中二进制文件的主要提倡者,但有一个解决方法。

  • 当您获得源代码时,您需要专门检查二进制文件(以启用写访问权限)。

无论其!如果您有多个开发人员在工作,这将(​​默认情况下)对二进制文件进行独占锁定。他们将无法检出文件进行编辑。

解决方法是在Visual Studio 2010中。转到

Team->Team Project Collection Settings->Source Control File Types并在列表中找到“可执行文件”。将文件合并更改为Enabled,您将能够在文件上拥有共享锁。

另一种选择是不要“获取”你的二进制文件夹,或者,如果你确实得到它,“取消”它使用

tf get "$/blah/project/Binaries" /server:servername /version:C1 /overwrite /force

您需要提供itempsec和servername。这将获得不存在的二进制文件的第一个版本,因此它将最终在本地删除它们并将它们标记为未获取(或检出)。