尝试加载格式不正确的程序。Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader

10

我正在编写一个从TFS获取错误的应用程序。当我在安装有Visual Studio的Windows 8上运行此程序时,它可以正常工作。但是,当我在安装有Visual Studio代理的Server 2008 R2和Windows 7虚拟机之一上运行此程序时,它会抛出以下异常。

Error occured: Could not load file or assembly 'Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. An attempt was made to load a program with an incorrect format.
   at Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore.InitializeInternal()
   at AutomationEntities.TFSManager.GetBugsFromTestCase(Int32 testCaseID)
   at AutomationEntities.ReportManager.GetBugStringFromTestCases(String testCaseString, String status)
   at AutomationEntities.ReportManager.InsertOrUpdateReport(String agentMachineName, String product, String versionName, String serverURL, String testCategory, String testName, String testNumber, String status, DateTime lastModifyTime, String errorMessage, Nullable`1 elapsedTime)
   at AutomationManager.XMLHandlerReport.AddItemToReportDatabase(String agentMachineName, String product, String version, String serverURL, String testCategory, String testName, TEST_STATUS testStatus, String errorMessage, String testNumber, String elapsedTime)
   at AutomationManager.ReportManager.ReportIndividualTestItem(TestData pendingTest, String testName, TEST_STATUS testStatus, String errorMessage, String resultsFileWPath)
   at AutomationManager.Program.Main(String[] args)

我的所有机器都运行64位Windows。

我不知道。列出的Dll与应用程序在同一文件夹中,它的版本为11。你有什么想法我错过了什么吗?

3个回答

21

我在一个ASP.NET网络应用程序中遇到过同样的问题。我通过启用IIS应用程序池的启用32位应用程序选项来解决了这个问题。


如果你正在制作一个Web应用程序,请在评论中注明。 - Jordan Davidson
1
更具体地说,如果使用Visual Studio中的本地IIS设置(在应用程序属性中)构建和运行Web应用程序,则在Windows中启动IIS Manager,选择应用程序池,右键单击DefaultAppPool,选择高级设置,并将“启用32位应用程序”设置为true。(基于Windows 7,IIS7,Visual Studio 2013) - dylanT

1
这个问题最终是与GAC有关。我只需使用dll构建所有引用,而不是假设它们在GAC中。
更新:如果查看引用的属性,会有一个构建属性。将所有有问题的DLL设置为在构建时复制。

2
你是怎么做到的?我也遇到了同样的问题,想尝试一下你的解决方案。 - JNM
我觉得整个C#社区似乎都忘记了如何解释“如何”做事情。 - NullVoxPopuli
我没有构建选项的副本。 :-( 我有本地复制 - 但没有悬停文本。 :-( - NullVoxPopuli

0

我最近在使用TFS 2010时遇到了同样的问题。我发现这是因为我的程序使用的目标.Net Framework不正确。如果您使用4.0,则在加载DatastoreLoader的依赖项时,它会尝试加载一些不正确的程序集。

当我使用正确的目标.Net Framework时,我的问题自动解决了。 希望这可以帮助到您。


有很多原因可能会导致这种情况,对我来说只是没有复制dll文件。感谢您的帖子,这些dll问题真的很烦人! - Jordan Davidson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接