2011-06-21 46 views
1

當我編譯我的.NET 4.0的應用程序:缺少類型,但似乎真的是版本不匹配

類型「System.Collections.Specialized.INotifyCollectionChanged」的定義我收到此錯誤信息未引用的程序集。您必須添加對程序集「WindowsBase,版本= 3.0.0.0,文化=中立,PublicKeyToken = 31bf3856ad364e35」的引用。

當您將系統添加到項目引用時,它說它需要的類是定義的。

這似乎是說它需要一個版本3的參考。我不知道該怎麼做。

如果有人有想法,我很樂意聽到它。

作爲一個方面說明,我現在用的是TFS API和驗證碼:

// Get the id of the work item that we got from the server (or the work item associated with it) 
int workItemId; 

// If this is a test run then we need to look up the work item it is running off of 
if (notificationEventArgs is TestCaseResultChangedNotification) 
{ 
    TestCaseResultChangedNotification testCaseResultChangedNotification = (notificationEventArgs as TestCaseResultChangedNotification); 
    ITestManagementTeamProject testManagementTeamProject = TFSAccess.Instance.TestManagement.GetTeamProject(testCaseResultChangedNotification.ProjectName); 
    ITestCaseResult testCaseResult = testManagementTeamProject.TestResults.Find(testCaseResultChangedNotification.TestCaseResultIdentifier.TestRunId, testCaseResultChangedNotification.TestCaseResultIdentifier.TestResultId); 
    workItemId = testCaseResult.TestCaseId; 

    foreach (ITestIterationResult testIterationResult in testCaseResult.Iterations) 
    { 

    } 
} 

這是迭代集合導致該問題。

回答

2

你是否嘗試添加對WindowsBase版本4的引用?它包含[TypeForwardedTo]屬性以將INotifyCollectionchanged類型重定向到System.dll。這應該照顧它。

+0

工作完美!謝謝! – Vaccano

+0

那麼你究竟做了什麼來解決這個問題? –

+0

他添加了對WindowsBase的引用。 –

1

在.NET 3.0中ObservableCollection被定義在WindowsBase程序集中。在.NET 4.0中,它在System中定義。看來,TFS API目標v3.0 ...

重定向您的項目到早期版本或引用WindowsBase。在第二種情況下,您可能需要使用this article中描述的方法。

相關問題