I upgraded to NCrunch 2.0 today and have come across the following load failure crunching a solution that worked fine in 1.48. From the stack trace, it looks as though a UNC path to our strong-named key is being interpreted as a relative rather than an absolute path:
System.Exception: An exception was thrown in the remote environment: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Exception: An error occurred while trying to parse the file Path '\\server\share\key.snk' as relative to 'D:\Code\Project'. Ensure the file path is valid and does not exceed the maximum length of 259 characters
at nCrunch.Common.IO.FilePath.FromRelativePath(String relativeFilePath, DirectoryPath relativeTo)
at nCrunch.Common.IO.FilePath.FromAbsoluteOrRelativePath(String absoluteOrRelativePath, DirectoryPath relativeTo)
at nCrunch.Compiler.RemoteBuildRunner.AnalyseComponentBuild(FilePath projectFilePath, BuildXml buildXml, String useBuildConfiguration, String useBuildPlatform, DirectoryPath solutionDir, String solutionName, List`1 importExpressionsToEvaluate)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at nCrunch.TaskRunner.Ipc.IpcMessageProcessor.#=qs6TGzDQpmiyYjiWWhpBgEcHuQIB4Q$00rOZUvvtarzg=(CallMethodMessage #=qrtggN7Z678_GYi4psuSgnhXR9zJy3H4zAYz4O6nH1ww=)
at nCrunch.TaskRunner.Ipc.IpcMessageProcessor.ProcessMessageReturningResult(Byte[] data)
at nCrunch.TaskRunner.Ipc.RemoteInstance.#=qcGDDKweBEMXhi3mkRiRCDQ==[T](Byte[] #=qxAhTXqZouVktwu5TH7XSFg==)
at nCrunch.TaskRunner.Ipc.RemoteInstance.Invoke(IMessage msg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at nCrunch.Compiler.IRemoteBuildRunner.AnalyseComponentBuild(FilePath projectFilePath, BuildXml buildXml, String useBuildConfiguration, String useBuildPlatform, DirectoryPath solutionDir, String solutionName, List`1 importExpressionsToEvaluate)
at nCrunch.Core.BuildManagement.BuildProcessLauncher.#=q2Ap4QGdBUxu9yb_Morbjq05Fr35rldfyFPbn232zWQU=.#=qdVxtAD8JZx2YYKadMqVForbh2lo5ieSctGSopctIUUDtakOedEYpyro2ZQEldTat(IRemoteBuildRunner #=qkfr8iEF4$KPwibYWn0RuTkOOzdjmzozT3lUZShYuPzE=)
at nCrunch.Core.BuildManagement.BuildProcessLauncher.#=qiR0BtzaZpAkVqLZ4jLqtORpBtF6naFCK2K3S1Q6j864HnZUWWAhGVTPMjyQK6ELu(Action`1 #=q9Xg17SVI$2OyGHTR0wi08w==, ProcessorArchitecture #=q1cZQJ8s0mlbw9bPG5nfTktXwEOFTSj_VE41yezURCp8=, GridClientId #=qU9mObx9jSIHR9QYoa79Opw==, IBuildableProject #=qWqmwt127KNeyg$U1Hmcnnt_ab$LwAPfo_MvnQcWVyhA=)
at nCrunch.Core.BuildManagement.BuildProcessLauncher.AnalyseComponentBuildInExternalProcess(FilePath projectFilePath, BuildXml buildXml, String useBuildConfiguration, String useBuildPlatform, DirectoryPath solutionDir, String solutionName, List`1 importExpressionsToEvaluate, ProcessorArchitecture processorArchitecture, VisualStudioVersion vsVersion)
at nCrunch.Client.ComponentLoader.SnapshotComponentFactory.(ProcessorArchitecture )
at nCrunch.Client.ComponentLoader.SnapshotComponentFactory.CreateSnapshotComponentFromXml(FilePath projectFilePath, BuildXml projectXml, FilePath solutionFilePath, String[] additionalFilesToIncludeAtSolutionLevel, Boolean isLoadedFromFile, ISnapshotConfig snapshotConfig, VisualStudioVersion vsVersion)
Is there a workaround I can use while this is being fixed? I'm not willing to modify the location for the SNK to use a mapped network drive because there are ~50 projects in the solution and I'd have to do each one.
Thanks for reporting this issue. The new file path handling system in V2 wasn't designed to deal with UNC paths, so short of moving this key file onto the local machine (or a mapped drive), I'm afraid that I don't see a way to work around this problem. I'll need to introduce a fix for you in the next beta build. Sorry for the trouble.
I’m happy to say that this issue has been resolved. If you’re interested in grabbing the fix, you can download v2.1b from the NCrunch download page - http://www.ncrunch.net/download
Remco wrote:I’m happy to say that this issue has been resolved. If you’re interested in grabbing the fix, you can download v2.1b from the NCrunch download page - http://www.ncrunch.net/download
I tried the beta and still get the error so upgrading to v2.1 beta doesn't solve the issue. :(
I'm using VS2012 Update 4 with Resharper 8.1.18.183 on Windows 8.1.
After downgrading to version 1.48 Ncrunch works again.
System.Exception: An exception was thrown in the remote environment: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Exception: An error occurred while trying to parse the file Path '\\server\CommonLibraries\xxxxx.Sharepoint.Utilities\xxxxx.SharePoint.Utilities.dll' as relative to 'C:\Repo\TFS\Utilities\xxxxxStoreMonitor\xxxxxStoreMonitor.SvcLib'. Ensure the file path is valid and does not exceed the maximum length of 259 characters
at nCrunch.Common.IO.FilePath.FromRelativePath(String relativeFilePath, DirectoryPath relativeTo)
at nCrunch.Common.IO.FilePath.FromAbsoluteOrRelativePath(String absoluteOrRelativePath, DirectoryPath relativeTo)
at #=q4G9c9Iy6Y2VjzNXzS0$bJHJ4CjdAUKfdgDeDP7CY2YznpsHM_GNh0pY6ry1y4fbrcM6l9MiC51MJtgGovI2u5qqHpRb2X2esumCc4mgmk14=.#=qi6ykqJmnoJ3R$LwBg3UV6q5uQRmv2QNfpb5uQ15gj7o=(IEnumerable`1 #=qv487JI7jaTxa3v9bqYO89w==, Boolean #=q0$rCAe_xANDGb2NLDuK9zyQ85iAczYiV3SA6OKENzGg=, DirectoryPath #=qX9JdhicwMOEG2cSRa4hEo7HaHJmE87jK_ydfTieNqbQ=, DirectoryPath #=qm36_Sw04Ofiq7lUbJoXLNg==)
at nCrunch.Compiler.RemoteBuildRunner.AnalyseComponentBuild(FilePath projectFilePath, BuildXml buildXml, String useBuildConfiguration, String useBuildPlatform, DirectoryPath solutionDir, String solutionName, List`1 importExpressionsToEvaluate)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at nCrunch.TaskRunner.Ipc.IpcMessageProcessor.#=qasQjbyXk1XCi6i$viTK7bBtYPgdO4OCtt$ydiyoCMWo=(CallMethodMessage #=qOAe_koMfKeBgNzINYJMLYQ6EsEwxDr7rIUA0QLwO4VI=)
at nCrunch.TaskRunner.Ipc.IpcMessageProcessor.ProcessMessageReturningResult(Byte[] data)
at nCrunch.TaskRunner.Ipc.RemoteInstance.#=q4Msyv_qKcoBd77JGMpCTnA==[T](Byte[] #=q_2cVtqai_8qvPQQGDIGD2w==)
at nCrunch.TaskRunner.Ipc.RemoteInstance.Invoke(IMessage msg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at nCrunch.Compiler.IRemoteBuildRunner.AnalyseComponentBuild(FilePath projectFilePath, BuildXml buildXml, String useBuildConfiguration, String useBuildPlatform, DirectoryPath solutionDir, String solutionName, List`1 importExpressionsToEvaluate)
at nCrunch.Core.BuildManagement.BuildProcessLauncher.#=qtL6q6sSBceddHDiqa4FAtSme5sQ4C_B6SoDAWZ9cWNE=.#=q9Dq3TYKPn2EGYFEXxElGtSRZ_7Rgqo894Pe8yyIQCzSJRpKSs8UIxIxPLRaLoJ0z(IRemoteBuildRunner #=q7_Dk_JXc$x573TjoLkHUhVghZeUYB52TWkg8sULl6Ls=)
at nCrunch.Core.BuildManagement.BuildProcessLauncher.#=q$YUIubkdoewVMMAVblv0dle94tSx9zRsRnr815VhTqTmSTslJhWAe7hUdqW6dwwk(Action`1 #=qrLtBog8EFP51BYsrEdl3hQ==, ProcessorArchitecture #=qv6govqAV_yxWuZszGiCVg6vaUcf0HYYQv5JoEU17Gi8=, GridClientId #=q4u8l98HDOM1QuEeATIjSKA==, IBuildableProject #=qd5ir4hPpPH2Xu2Mx16VgNbh9j$dWdTCrPnAxReewOiU=)
at nCrunch.Core.BuildManagement.BuildProcessLauncher.AnalyseComponentBuildInExternalProcess(FilePath projectFilePath, BuildXml buildXml, String useBuildConfiguration, String useBuildPlatform, DirectoryPath solutionDir, String solutionName, List`1 importExpressionsToEvaluate, ProcessorArchitecture processorArchitecture, VisualStudioVersion vsVersion)
at nCrunch.Client.ComponentLoader.SnapshotComponentFactory.#=q4ObbZigyzFk5Z0rlv7CQipbVyAR7FxRaBoC$naWVG1A=(ProcessorArchitecture #=q3VbfAUHI5ndKl44pvfdl9VIpTgXe5$oTvdtmRwZB3Uk=)
at nCrunch.Client.ComponentLoader.SnapshotComponentFactory.CreateSnapshotComponentFromXml(FilePath projectFilePath, BuildXml projectXml, FilePath solutionFilePath, String[] additionalFilesToIncludeAtSolutionLevel, Boolean isLoadedFromFile, ISnapshotConfig snapshotConfig, VisualStudioVersion vsVersion)
The fix above was intended to solve problems with key files being placed on UNC paths. Referenced assemblies on UNC paths are a bit harder ... You can probably work around this by moving the reference off the UNC or by creating a mapped network drive. I'll see if I can arrange a fix.