2011-05-24 98 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

相关问题