2011-05-24 6 views
2

Je suis le tutoriel du livre "Pro C# 2010 et la plate-forme .NET 4". Après que je charge le code exemple de projet MyXamlPad en vertu du chapitre 27 et essayer de l'exécuter, je suis une erreur du compilateur comme suit:WPF - Comment exécuter la solution WPF dans VS2010 SP1

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/ 

Que dois-je faire pour résoudre ce problème? Ou je ne peux pas exécuter le WPF dans VS2010 et utiliser MSBUILD à la place.

Merci

Répondre

4

Assurez-vous que vous avez un seul dossier v4.0 *** (vous pouvez renommer si vous ne souhaitez pas supprimer) dans votre dossier C: \ Windows \ Microsoft.NET \ dossier Framework. Cela devrait faire l'affaire.

Si vous n'avez qu'un seul de ces dossiers *** v4.0, vous pouvez essayer de modifier le fichier Microsoft.Common.targets dans ce dossier et de supprimer TrackFileAccess = "$ (TrackFileAccess)" et TrackerLogDirectory = "$ (TrackerLogDirectory) "entrées du noeud GenerateResource autour de la ligne 1850.

+0

cela fonctionne pour moi savoir. Peux-tu me donner un petit aperçu de ce qui se passe ici? Cela signifie-t-il que mon client doit faire la même chose pour l'utiliser? --Merci – q0987

+0

Il pourrait y avoir un problème d'exécution de l'échantillon lui-même. Par défaut, le projet WPF dans VS 2010 utilise le profil client .NET 4.0. L'exemple utilisé peut être différent dans la version .NET. –

+0

Pour l'enregistrement, j'ai dû fermer et rouvrir VS2010 pour que cette modification prenne effet. Je pensais sauver le prochain. –

2

J'ai posté mon commentaire ci-dessus, et j'ajouterai plus de détails dans cette réponse.

Il pourrait y avoir un problème d'exécution de l'échantillon lui-même. Par défaut, le projet WPF dans VS 2010 utilise le profil client .NET 4.0. L'exemple utilisé peut être différent dans la version .NET.

Avez-vous essayé de reconstruire la solution? Si cela ne fonctionne toujours pas, essayez d'ajouter la référence d'assembly manuellement au projet exemple WPF.

+0

@eriawan, la solution fournie par kzen fonctionne pour moi. Cependant, je ne sais pas pourquoi ce problème se produit et aussi je ne sais pas quelle est la théorie derrière cette solution? – q0987

+0

Il y a quelques théories derrière cette solution, car il est si rare de se produire. Premièrement: il se peut que vous développiez sur une machine 64 bits (comme Windows 7 x64) et .NET sera installé dans un dossier 64 bits mais le projet recherchera les assemblages .NET 32 bits. Deuxièmement: il se pourrait que vous utilisiez le profil Client .NET. Troisièmement: il se peut que vous ayez appliqué .NET 4 SP1. –

+0

@eriawan, Ma spécification de machine est WinXP SP3 + VS2010SP1 + .NET 4.0 SP1. Pouvez-vous me donner la ressource officielle qui cible ce problème? - thx – q0987

Questions connexes