创建nuget包失败'路径不是合法形式'

本文关键字:路径 nuget 失败 包失败 创建 | 更新日期: 2023-09-27 18:18:06

在构建后的步骤中,我们创建了nuget包。由于某些原因,这在我的机器上总是失败,而在其他开发人员的机器上却可以工作。

执行的命令为:

nuget.exe  pack "$(ProjectPath)" -Properties Configuration=$(ConfigurationName) -OutputDir "$(ProjectDir)..'Apps"

我得到的输出是:

Packing files from ''.
Using 'Organisation.AppName.Modules.Kcs.nuspec' for metadata.
The path is not of a legal form.

对于其他开发人员,第一行包含目录。是什么原因导致它在我的盒子上工作不一样?我可以设置选项来改变这种行为吗?

编辑:

我下载了nuget源代码,发现事情开始出错的地方。我可以用一个小的测试程序来模拟它:

using System;
using Microsoft.Build.Evaluation;
namespace CheckTarget
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("usage: CheckTarget projectfile.csproj");
                Console.WriteLine();
                return;
             }
             string path = args[0];
             var project = new Project(path);

             Console.WriteLine("TargetDir = {0}", project.GetProperty("TargetDir") != null ? project.GetProperty("TargetDir").EvaluatedValue : string.Empty);
             Console.WriteLine("TargetPath = {0}", project.GetProperty("TargetPath").EvaluatedValue);
             Console.ReadKey();
         }
     }
}

在我的机器上,targetdir为空,在另一台机器上,targetdir指向有效目录

创建nuget包失败'路径不是合法形式'

在nuget程序中使用属性Platform to -Properties参数

-Properties Platform=$(Platform)

其中$(Platform)是您的项目平台之一(在csproj文件中定义,通常是x86, 'Any CPU',…)。

在您的情况下,运行如下命令:

nuget.exe pack "$(ProjectPath)" -Properties Configuration="$(ConfigurationName)" Platform="$(Platform)" -OutputDir "$(ProjectDir)..'Apps"

终于找到了答案。这个线程帮助我找到了问题:http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/d3c6e2de-1e87-49c2-b059-df074868e315/

在我的机器上有一个环境变量platform,它的值是BWS。把它删了,一切正常!

我有同样的问题基本上这是一个旧的nuget版本我携带在我的源代码管理,我删除了。nuget文件夹然后我卸载nuget从visual studio,通过选择

tools> extensions &更新,

select nuget &卸载,然后做同样的过程,但要安装它,只要确保你在"在线"存储库中搜索。

我必须从更新和扩展中更新Nuget管理器。

对我来说,问题是没有。dll在Debug文件夹内,没有-properties Configuration=Release选项,nuget通常试图在Debug文件夹中找到一个dll。

手动运行nuget pack给了我一个有用的错误信息。运行它作为后构建事件,我得到了相同的模糊的错误信息作为你。