2010-08-30 75 views
2

我的構建服務器突然停止工作。我檢查日誌文件後,我發現怪物的錯誤消息:MSBuild在解析COM參考時失敗。爲什麼?

error MSB4018: The "ResolveComReference" task failed unexpectedly. 
error MSB4018: System.ApplicationException: The directory name is invalid. (Exception from HRESULT: 0x8007010B) 
error MSB4018: 
error MSB4018: Server stack trace: 
error MSB4018: at System.Reflection.Assembly.nDefineVersionInfoResource(String filename, String title, String iconFilename, String description, String copyright, String trademark, String company, String product, String productVersion, String fileVersion, Int32 lcid, Boolean isDll) 
error MSB4018: at System.Reflection.Emit.AssemblyBuilder.SaveNoLock(String assemblyFileName, PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine) 
error MSB4018: at System.Reflection.Emit.AssemblyBuilder.Save(String assemblyFileName, PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine) 
error MSB4018: at Microsoft.Build.Tasks.TlbReference.WriteWrapperToDisk(AssemblyBuilder assemblyBuilder, String wrapperPath) 
error MSB4018: at Microsoft.Build.Tasks.TlbReference.GenerateWrapper(ComReferenceWrapperInfo& wrapperInfo) 
error MSB4018: at Microsoft.Build.Tasks.ResolveComReference.ResolveComReferenceTlb(ComReferenceInfo referenceInfo, StringoutputDirectory, String refName, Boolean topLevelRef, ComReferenceWrapperInfo& wrapperInfo) 
error MSB4018: at Microsoft.Build.Tasks.ResolveComReference.ResolveComClassicReference(ComReferenceInfo referenceInfo, String outputDirectory, String wrapperType, String refName, Boolean topLevelRef, ComReferenceWrapperInfo& wrapperInfo) 
error MSB4018: at Microsoft.Build.Tasks.ResolveComReference.Microsoft.Build.Tasks.IComReferenceResolver.ResolveComClassicReference(TYPELIBATTR typeLibAttr, String outputDirectory, String wrapperType, String refName, ComReferenceWrapperInfo& wrapperInfo) 
error MSB4018: at Microsoft.Build.Tasks.ResolveComReference.ScanAndResolveAllDependencies(ComDependencyWalker dependencyWalker, ComReferenceInfo reference) 
error MSB4018: at Microsoft.Build.Tasks.ResolveComReference.ResolveReference(ComDependencyWalker dependencyWalker, ComReferenceInfo referenceInfo, String outputDirectory, ITaskItem& referencePathItem) 
error MSB4018: at Microsoft.Build.Tasks.ResolveComReference.ResolveReferenceAndAddToList(ComDependencyWalker dependencyWalker, ComReferenceInfo projectRefInfo, ArrayList resolvedReferenceList, ArrayList moduleList) 
error MSB4018: at Microsoft.Build.Tasks.ResolveComReference.Execute() 
error MSB4018: at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) 
error MSB4018: at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) 
error MSB4018: at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext) 
error MSB4018: 
error MSB4018: Exception rethrown at [0]: 
error MSB4018: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
error MSB4018: at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
error MSB4018: at Microsoft.Build.Framework.ITask.Execute() 
error MSB4018: at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult) 

所有的錯誤都是從c:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(1418,9)

很明顯COM引用有一些問題。我試圖重新註冊所有這些,但我沒有成功。

我怎樣才能找到困擾的參考或至少我該如何診斷這個問題?


編輯:當我在本地構建應用程序並將其複製到它的工作原理服務器。所以只有構建需要的東西存在問題。

回答

0

Process Monitor揭示了MSBuild做的最後一件合理的事情是在項目輸出文件夾中尋找stdole.dll的互操作庫。這使我更加困惑,因爲我的項目沒有直接依賴於該dll。

最後我重新啓動服務器,一切工作正常。對我感到羞恥。我應該先嚐試重新啓動。

2

目錄名稱是無效

那是你真正的問題。

+0

你有什麼線索我怎麼找到哪個目錄名無效?我花了半個小時在註冊表中挖掘,但我沒有發現任何可疑的東西。 – 2010-08-30 13:13:55

+0

它試圖將COM互操作庫寫入磁盤時發生。不是註冊表問題。 – 2010-08-30 13:24:24

相關問題