1.vs2010,DllNotFoundException
用VS2012新建的類庫,用VS2010打開,編譯的時候報錯:
錯誤 5 “GenerateResource”任務意外失敗。
System.DllNotFoundException: 無法加載 DLL“FileTracker.dll”: 動態鏈接庫(DLL)初始化例程失敗。 (異常來自 HRESULT:0x8007045A)。
在 Microsoft.Build.Shared.NativeMethodsShared.InprocTracking.StartTrackingContextWithRoot(String intermediateDirectory, String taskName, String rootMarker)
在 Microsoft.Build.Utilities.FileTracker.StartTrackingContextWithRoot(String intermediateDirectory, String taskName, String rootMarkerResponseFile)
在 Microsoft.Build.Tasks.GenerateResource.Execute()
在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
在 Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask, Boolean& taskResult) DBUtility
具體原因不清楚,這個應該是.net的bug。
找到以下幾種解決方案,大家可以嘗試一下:
解決方案A:刪除C:\Windows\Microsoft.NET\Framework\v4.0.21006\Temporary ASP.NET Files目錄下得所有文件,重新編譯!
來源:http://social.msdn.microsoft.com/Forums/en-US/88db71cf-a501-428d-91fa-1535d82d8014/build-error-unable-to-load-dll-filetrackerdll
我用這個方法解決了這個異常,推薦!
解決方案B:打開csproj文件,新建一個屬性組如下:
<PropertyGroup>
<TrackFileAccess>false</TrackFileAccess>
</PropertyGroup>
沒有測試,可以試試
來源:http://blogs.msdn.com/b/dsvc/archive/2010/05/28/the-quot-generateresource-quot-task-failed-unexpectedly-unable-to-load-filetracker-dll.aspx
解決方案C:打開csproj文件,在第一個PropertyGroup中添加如下配置:
<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>
解決方案D:打開文件: C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/Microsoft.Common.Targets
找到
<GenerateResource
…
TrackFileAccess="$(TrackFileAccess)"
TrackerLogDirectory="$(TrackerLogDirectory)"
…
</GenerateResource>
刪除
TrackFileAccess="$(TrackFileAccess)"
TrackerLogDirectory="$(TrackerLogDirectory
