2014-09-11 186 views
0

我创建了一个NuGet package,它是已存在但已经死亡package的分叉。NuGet软件包在安装时返回`路径中的非法字符.`安装

我删除了两个我们不再使用的文件夹。由于他们太长的260个字符的窗口限制。

当我尝试通过在VS2012失败的GUI来安装新的软件包,并返回

Illegal characters in path.

当我尝试包管理器控制台,我得到以下错误:

PM> Install-Package NC.Frontend.Env 
Installing 'NC.Frontend.Env 1.0.1'. 
Install failed. Rolling back... 
Install-Package : Illegal characters in path. 
At line:1 char:1 
+ Install-Package NC.Frontend.Env 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [Install-Package], ArgumentException 
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand 

我也尝试nuget install NC.Frontend.Env -Verbosity detailed但没有更多的是暴露:

GET http://nuget.episerver.com/feed/packages.svc/FindPackagesById()?$filter=IsLatestVersion&$orderby=Version desc&$top=1&id='NC.Frontend.Env' 
GET http://nuget.episerver.com/feed/packages.svc/FindPackagesById()?id='NC.Frontend.Env' 
GET https://www.nuget.org/api/v2/FindPackagesById()?$filter=IsLatestVersion&$orderby=Version desc&$top=1&id='NC.Frontend.Env' 
GET https://www.nuget.org/api/v2/Packages(Id='NC.Frontend.Env',Version='1.0.1') 
nuget : System.ArgumentException: Illegal characters in path. 
At line:1 char:2 
+ nuget install NC.Frontend.Env -Verbosity detailed 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (System.Argument...acters in path.:String) [], RemoteException 
    + FullyQualifiedErrorId : NativeCommandError 

    at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional) 
    at System.IO.Path.GetDirectoryName(String path) 
    at NuGet.ZipPackage.IsPackageFile(PackagePart part) 
    at NuGet 
.OptimizedZipPackage.<EnsurePackageFiles>b__9(PackagePart part) 
    at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() 
    at NuGet.OptimizedZipPackage.EnsurePackageFiles() 
    at NuGet.OptimizedZipPackage.GetAssemblyReferencesCore() 
    at NuGet.LocalPackage.get_AssemblyReferences() 
    at NuGet.DataServicePackage.get_AssemblyReferences() 
    at NuGet.PackageExtensions.HasProjectContent(IPackage package) 
    at NuGet.PackageWalker.GetPackageTarget(IPackage package) 
    at NuGet.PackageWalker.GetPackageInfo(IPackage package) 
    at NuGet.PackageWalker.ProcessPackageTarget(IPackage package) 
    at NuGet.PackageWalker.Walk(IPackage package) 
    at NuGet.InstallWalker.ResolveOperations(IPackage package) 
    at NuGet.PackageManager.Execute(IPackage package, IPackageOperationResolver resolver) 
    at NuGet.PackageManager.InstallPackage(IPackage package, FrameworkName targetFramework, Boolean ignoreDependencies, Boolean allowPrereleaseVersions, Boolean ignoreWalkInfo) 
    at NuGet.PackageManager.InstallPackage(IPackage package, Boolean ignoreDependencies, Boolean allowPrereleaseVersions) 
    at NuGet.PackageManager.InstallPackage(String packageId, SemanticVersion version, Boolean ignoreDependencies, Boolean allowPrereleaseVersions) 
    at NuGet.Commands.InstallCommand.InstallPackage(IFileSystem fileSystem, String packageId, SemanticVersion version) 
    at NuGet.Commands.InstallCommand.ExecuteCommand() 
    at NuGet.Commands.Command.Execute() 
    at NuGet.Program.Main(String[] args) 

我不知道wh这发生了,而且我看起来很奇怪,因为我只是删除了东西。

+0

好吧,告诉我们什么文件存储在.zip压缩文件中。这就是它抱怨的。 – 2014-09-11 15:01:25

回答

0

我发现这是因为我使用的工具。

我正在使用GUI工具,但是当我使用命令行工具时,所有工作都完美无缺。

0

你的包里仍然有很长的路径。我设法安装你的包只有在我的项目文件夹位于根:

successful install

否则我得到一个长路径错误:

long path error

也许你应该考虑使用经典的安装或用于工具的vsix和仅用于直接项目依赖关系的nuget?或者也许将工具分成几部分?目前已经有节点和NPM包:

https://www.nuget.org/packages/Node.js/

https://www.nuget.org/packages/Npm/

+0

我解决了我的问题,但我无法自己关闭它。我正在使用GUI工具,使用cmd工具修复了我的问题。长路径的问题应该得到解决,否则我试图通过展开node_modules文件夹来修复它。 – 2014-09-11 14:51:33

+0

@AllanKimmerJensen你可以用你的修补程序编写自己的答案来解决问题,也许它可以帮助别人:) – Matthieu 2014-09-11 15:11:31