环境: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的错误。
如何解决这个问题?
答案 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。这将获得不存在的二进制文件的第一个版本,因此它将最终在本地删除它们并将它们标记为未获取(或检出)。