Microsoft.Build.Utilities.FileTracker引发了异常错误.发生在不同的项目

Ton*_*ich 10 .net msbuild visual-studio-2010

最近使用Visual Studio 2010 Ultimate,C#,在Win7 64bit中,当我编译任何项目时,我得到以下错误.解决方法是添加<TrackFileAccess>false</TrackFileAccess>到项目文件中.如果我没有弄错,这将禁用增量构建,所以我想远离这种解决方法.

谁知道永久可靠的解决方案是什么?我确实重新安装了.NET Framework 4和VS 2010.我没有测试版或4.0版本的框架文件夹.

Error   1   The "GenerateResource" task failed unexpectedly.
System.TypeInitializationException: The type initializer for 'Microsoft.Build.Utilities.FileTracker' threw an exception. ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Build.Utilities.FileTracker..cctor()
   --- End of inner exception stack trace ---
   at Microsoft.Build.Utilities.FileTracker.ForceOutOfProcTracking(ExecutableType toolType, String dllName, String cancelEventName)
   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 
Run Code Online (Sandbox Code Playgroud)

小智 22

我通过反映Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Build.Utilities.v4.0.dll找到了我的环境解决方案

我的TEMP/TMP环境变量指向一个ram驱动器根文件夹(T:\),没有任何进一步的目录嵌套!该线s_tempPath = Path.GetDirectoryName(Path.GetTempPath()); 在Microsoft.Build.Utilities.FileTracker的静态ctor中导致null,这导致您提到的异常.

现在我的TEMP/TMP环境变量指向T:\ TEMP,一切正常.

  • 谢谢你的解决方案 一小部分:有时在此异常后卡住了MSBuild.exe(即使在关闭devenv.exe之后).应该杀死他们以解决问题 (2认同)