我相信我正在处理一些DLL地狱。
我在我的应用程序中引用了Microsoft.TeamFoundations.VersionControl.Client,并且'copy local'设置为true。应用程序在我的开发机器上按预期运行。
当我部署此应用程序时,我在尝试执行Microsoft.TeamFoundations.VersionControl.Client.DownloadFile()时遇到异常
找不到方法:'System.IO.Stream Microsoft.TeamFoundation.VersionControl.Client.Item.DownloadFile()'。
部署到我的bin目录的版本是9.0.3版。该方法存在。我注意到这个dll的先前版本确实存在于
中C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies
为什么我的应用程序似乎没有使用我在我的解决方案中引用的程序集并最终在bin中?我怎么能强迫这种情况发生?
谢谢!
答案 0 :(得分:0)
我不确定是不是这样,当我尝试使用TFS 2008时,我不得不在项目设置中使用x86处理器而不是任何CPU。如果不这样做,当我的应用程序部署到其他人的机器上时,我发现了一种奇迹。
另外,我在我的应用程序中部署了一些dll,也许你已经错过了部署VersionControl.Client.dll所依赖的东西,而且它正在尝试使用另一个dll,它的版本错误。我分发以下内容(不确定是否全部需要,但您可以尝试分发更多以查看是否解决了这个问题):
Microsoft.Build.Framework.dll Microsoft.TeamFoundation.Build.Client.dll Microsoft.TeamFoundation.Client.dll Microsoft.TeamFoundation.Collaboration.dll Microsoft.TeamFoundation.Common.dll Microsoft.TeamFoundation.Common.Library.dll Microsoft.TeamFoundation.dll Microsoft.TeamFoundation.VersionControl.Client.dll Microsoft.TeamFoundation.VersionControl.Common.dll Microsoft.TeamFoundation.VersionControl.Controls.dll Microsoft.TeamFoundation.WorkItemTracking.Controls.dll Microsoft.VisualStudio.TeamFoundation.Client.dll Microsoft.VisualStudio.TeamFoundation.dll Microsoft.VisualStudio.TeamFoundation.WorkItemTracking.dll
答案 1 :(得分:0)
从这个链接Microsoft.TeamFoundation.VersionControl.Client.Item.DownloadFile() is missing可以看出,还有其他(并且可能更安全)方法可以用其他方法完成此操作。
答案 2 :(得分:0)
该应用程序坚持要从GAC引用这些dll。我最终在开发环境中安装了VS 2010,并引用了GAC中的Microsoft.TeamFoundation dll。 VS 2010安装了Team Foundation的第10版,并将其纳入开发GAC。