在构建后的步骤中,我们创建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指向有效的目录。
发布于 2013-06-18 08:07:37
终于找到了答案。这个线程帮助我找到了问题:http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/d3c6e2de-1e87-49c2-b059-df074868e315/
在我的机器上有一个环境变量“platform”,其值为“BWS”。删除它和事情是有效的!
发布于 2015-03-13 16:10:39
在nuget程序中使用属性平台实现-Properties参数
-Properties Platform=$(Platform)其中$( platform )是您的项目平台之一(定义在csproj文件中,通常是x86,“任意CPU”,.)。
在你的情况下,运行如下:
nuget.exe pack "$(ProjectPath)" -Properties Configuration="$(ConfigurationName)" Platform="$(Platform)" -OutputDir "$(ProjectDir)..\Apps"发布于 2015-10-17 02:07:52
我也有同样的问题----这是我在源代码管理中携带的旧nuget版本,我删除了.nuget文件夹,然后从visual studio卸载nuget,通过选择
工具>扩展和更新,
选择nuget & uninstall,然后执行相同的过程,但是要安装它,只需确保在"online“存储库中进行搜索即可。
https://stackoverflow.com/questions/17066856
复制相似问题