Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 第三方动态链接库_Visual Studio 2010_Visual Studio 2012_Tfs - Fatal编程技术网

Visual studio 2010 第三方动态链接库

Visual studio 2010 第三方动态链接库,visual-studio-2010,visual-studio-2012,tfs,Visual Studio 2010,Visual Studio 2012,Tfs,我有下面的目录。结构 $/ TeamProj1/ Solution1/ <Solution and files etc> TeamProj2/ Libs/ LibSolution1/ <solution and files etc> External/ ThirdParty.dll $/ TeamProj1/ 解决方案1/ 团队项目2/ 自由基/ LibSolution1/

我有下面的目录。结构

$/
 TeamProj1/
     Solution1/
         <Solution and files etc>
  TeamProj2/
     Libs/
       LibSolution1/
         <solution and files etc>
     External/
      ThirdParty.dll
$/
TeamProj1/
解决方案1/
团队项目2/
自由基/
LibSolution1/
外部的/
第三方.dll
Solution1具有对LibSolution1的项目引用,以及对ThirdParty.dll的程序集引用

当我通过File->Open from source control重新签出Solution1时,TFS会正确签出LibSolution1文件,但不会签出第三方dll。 如果我手动签出第三方dll,所有内容都会生成

如何强制TFS签出正确的第三方dll文件? 我可以想出两种可能的方法,但我并不特别喜欢这两种方法。 1) 我可以在Solution1中添加一个libs文件夹并在那里添加dll。然后在签出solution1时将签出dll。但我不喜欢这种方法,因为除了Solution1之外,还有一些解决方案将使用第三方程序集,我只想维护文件的一个副本

2) 我可以创建一个“虚拟”第三方项目/解决方案,并将文件添加到该解决方案中,然后将虚拟项目添加到解决方案1解决方案中。然后,当我签出solution1时,它将看到虚拟项目,并将其与所有相关文件(即第三方DLL)一起签出。。。但这似乎不必要地复杂


是否有一种方法可以指示TFS简单地签出所需的文件?

此解决方案是选项1的变体,但不必维护DLL的多个副本

将新文件夹添加到解决方案1(例如第三方DLL)。右键单击文件夹->添加现有项,而不是在此处实际添加DLL(从保存位置创建指向这些第三方DLL的链接)。现在,在文件夹中添加DLL链接后,从该文件夹(第三方DLL)添加对项目中DLL的引用

现在,当您获取最新的解决方案文件时,它也应该获取您的DLL。我自己并没有在Dll中尝试过这个方法,但在维护AssemblyVersion文件的一个副本时做过,效果很好。试着让我知道


退房时,您的意思是“获取最新信息”,对吗?或者thirdparty.dll需要是可写的吗?你能不能不只是打开源代码控制资源管理器,而是在那里做一个“获取最新版本”的操作?有关在解决方案资源管理器中不起作用的原因,请参阅,@rene:Third party.dll不需要是可写的“获取最新版本”也很有可能奏效。@爱德华:我可以打开源代码管理资源管理器并手动获取文件的最新版本,但是,我希望在通过“源代码管理打开”新打开时自动获取文件。我不想做任何其他事情。