Deployment error: The specified path, file name, or both are too long

I get the following error when deploying some packages:

2012-11-12 10:26:42,351 [4] ERROR Octopus [(null)] - Error while executing job: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
at System.IO.PathHelper.GetFullPathName()
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream…ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at NuGet.PhysicalFileSystem.AddFile(String path, Stream stream)
at NuGet.FileSystemExtensions.AddFileWithCheck(IFileSystem fileSystem, String path, Func1 streamFactory) at NuGet.FileSystemExtensions.AddFiles(IFileSystem fileSystem, IEnumerable1 files, String rootDir, Boolean preserveFilePath)
at NuGet.PackageManager.ExpandFiles(IPackage package)
at NuGet.PackageManager.ExecuteInstall(IPackage package)
at NuGet.PackageManager.Execute(PackageOperation operation)
at NuGet.PackageManager.Execute(IPackage package, IPackageOperationResolver resolver)
at NuGet.PackageManager.InstallPackage(IPackage package, FrameworkName targetFramework, Boolean ignoreDependencies, Boolean allowPrereleaseVersions)
at NuGet.PackageManager.InstallPackage(IPackage package, Boolean ignoreDependencies, Boolean allowPrereleaseVersions)
at Octopus.Tentacle.Deployment.Packages.PackageInstaller.InstallPackageUsingNuGet(PackageMetadata package, SemanticVersion version, String packageInstallationPath) in c:\BuildAgent\work\e6923628be6eaf72\source\Octopus.Tentacle\Deployment\Packages\PackageInstaller.cs:line 89
at Octopus.Tentacle.Deployment.Packages.PackageInstaller.Install(PackageMetadata package, PackageInstallationOptions options) in c:\BuildAgent\work\e6923628be6eaf72\source\Octopus.Tentacle\Deployment\Packages\PackageInstaller.cs:line 60
at Octopus.Tentacle.Deployment.DeploymentController.Execute(PackageMetadata package, VariableDictionary variables, IActivityLog log) in c:\BuildAgent\work\e6923628be6eaf72\source\Octopus.Tentacle\Deployment\DeploymentController.cs:line 29
at Octopus.Tentacle.Services.Jobs.Deployment.DeployPackageJobExecutor.Execute(DeployPackageJob job, JobState state) in c:\BuildAgent\work\e6923628be6eaf72\source\Octopus.Tentacle\Services\Jobs\Deployment\DeployPackageJobExecutor.cs:line 20
at CallSite.Target(Closure , CallSite , Object , Object , JobState )
at Octopus.Tentacle.Services.Jobs.JobQueue.RunDeploymentsOnBackgroundThread(Object ignored) in c:\BuildAgent\work\e6923628be6eaf72\source\Octopus.Tentacle\Services\Jobs\JobQueue.cs:line 79

Any suggestions?

Hi James,

It sounds like the combination of the environment name, Tentacle root installation directory, and files in the NuGet packages, are making the path longer than 255 characters. You could try changing the root install directory to something short (C:\Apps for example) in the Tentacle admin console.

Paul

I tried D:\Octo and that didn’t work but when I tested with D:\O it seemed to work. Sounds like I don’t have many options other than shortening the environment name or files and directories in the NuGet package, right?

Hi James,

Unfortunately that’s correct.

Paul

Try also this tool “Long Path Tool”, it is easy and works greatly…

Dear Xian Sembrano, would you please tell me that Long path tool is equally helpful on Linux operating system. Thanks.