2011-05-24 71 views
2

我正在關注「Pro C#2010和.NET 4平臺」一書中的教程。之後,我在第27章負荷MyXamlPad項目中的示例代碼,並嘗試運行它,我從編譯器得到了一個錯誤如下:WPF - 如何在VS2010 SP1中運行WPF解決方案

Error 1 The "GenerateResource" task failed unexpectedly. 
System.DllNotFoundException: Unable to load DLL 'FileTracker.dll': A dynamic link library (DLL) initialization routine failed. (Exception from HRESULT: 0x8007045A) 
    at Microsoft.Build.Shared.NativeMethodsShared.InprocTracking.StartTrackingContextWithRoot(String intermediateDirectory, String taskName, String rootMarker) 
    at Microsoft.Build.Utilities.FileTracker.StartTrackingContextWithRoot(String intermediateDirectory, String taskName, String rootMarkerResponseFile) 
    at Microsoft.Build.Tasks.GenerateResource.Execute() 
    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 
    at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask, Boolean& taskResult) MyXamlPad 


Reference: 

http://www.apress.com/9781430225492 
http://www.apress.com/downloadable/download/sample/sample_id/12/ 

我應該怎麼做才能解決這個問題?或者我不能在VS2010中運行WPF,而必須使用MSBUILD。

謝謝

回答

4

確保你只有一個V4.0 ***文件夾中C(如果你不想刪除您可以重命名):\ WINDOWS \ Microsoft.NET \ Framework文件夾。這應該夠了吧。

如果您已經只有這些v4.0 ***文件夾中的一個,您可以嘗試編輯該文件夾中的Microsoft.Common.targets文件,並刪除TrackFileAccess =「$(TrackFileAccess)」和TrackerLogDirectory =「$(TrackerLogDirectory )「來自GenerateResource節點圍繞1850行的條目。

+0

它適用於我知道。你能給我一點背景嗎?這是否意味着我的客戶必須做同樣的事情才能使用它? - 謝謝 – q0987 2011-05-24 23:20:53

+0

運行樣品本身可能存在一些問題。默認情況下,VS 2010中的WPF項目使用.NET 4.0 Client Profile。 .NET版本中使用的樣本可能不同。 – 2011-05-25 03:48:24

+0

爲了記錄我必須關閉並重新打開VS2010,以使此更改生效。以爲我會拯救下一個人一些混亂。 – 2011-08-01 18:52:52

2

我上面發表了我的評論,我將在此答案中添加更多詳細信息。

運行樣品本身可能存在一些問題。默認情況下,VS 2010中的WPF項目使用.NET 4.0 Client Profile。 .NET版本中使用的樣本可能不同。

您是否嘗試過重建解決方案?如果它仍然不起作用,請嘗試手動向示例WPF項目添加程序集引用。

+0

@eriawan,kzen提供的解決方案適用於我。但是,我不知道爲什麼會出現這個問題,我也不知道這個問題背後的理論是什麼? – q0987 2011-05-25 04:04:19

+0

這個修復背後有一些理論,因爲它很少發生。首先:它可以是在64位計算機上開發的(例如Windows 7 x64),.NET將安裝在64位文件夾中,但該項目將搜索32位.NET程序集。其次:它可能是您使用.NET客戶端配置文件。第三:它可以是你已經應用了.NET 4 SP1。 – 2011-05-25 04:37:54

+0

@eriawan,我的機器規格是WinXP SP3 + VS2010SP1 + .NET 4.0 SP1。你可以給我這個針對這個問題的官方資源嗎? - thx – q0987 2011-05-25 04:46:06

相關問題