2010-12-08 100 views
2

我相信我正在處理一些DLL地獄。未找到方法:'System.IO.Stream Microsoft.TeamFoundation.VersionControl.Client.Item.DownloadFile()'

我在應用程序中引用了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 

爲什麼我的應用程序不會出現使用我在我的解決方案內引用和斌最終組裝?我如何強制這種情況發生?

謝謝!

回答

0

該應用程序堅持要從GAC引用這些dll。我最終在開發環境中安裝了VS 2010,並引用了來自GAC的Microsoft.TeamFoundation dll。 VS 2010將Team Foundation dll的第10版安裝到了開發GAC中。

0

我不確定是否這樣,當我嘗試使用TFS 2008時,我不得不在目標設置中使用任何CPU的x86處理器。如果不這樣做,當我的應用程序部署到其他人機器上時,我發現很奇怪。

此外,我部署了一些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.TeamFounda tion.WorkItemTracking.Controls.dll Microsoft.VisualStudio.TeamFoundation.Client.dll Microsoft.VisualStudio.TeamFoundation.dll Microsoft.VisualStudio.TeamFoundation.WorkItemTracking.dll

+0

我將解決方案中的每個項目上的目標平臺設置爲x86,並將所有Microsoft.TeamFoundations dll複製到bin目錄中。爲什麼我不能只使用我在項目中明確引用的dll?非常跛腳。 – Nick 2010-12-08 20:25:43

相關問題