首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CakeBuild:安装工具“NUnit.ConsoleRunner”失败

CakeBuild:安装工具“NUnit.ConsoleRunner”失败
EN

Stack Overflow用户
提问于 2017-08-29 13:59:42
回答 1查看 1.8K关注 0票数 0

我使用CakeBuild来构建和测试我的Xamarin便携式类库。

在build.cake脚本中,我定义要使用NUnit-控制台来运行测试用例。所以我知道

代码语言:javascript
复制
#tool nuget:?package=NUnit.ConsoleRunner

不幸的是,当我运行Cake脚本时,我会得到以下错误。

代码语言:javascript
复制
Preparing to run build script...
VERBOSE: Restoring tools from NuGet...
VERBOSE: Feeds used:
  C:\Users\bergkar\.nuget\packages\

All packages listed in C:\dev\Xamarin\fleetboard-core-library\tools\packages.config are already installed.
Running build script...
Analyzing build script...
Processing build script...
Installing tools...
Unable to find package 'NUnit.ConsoleRunner'
NuGet exited with 1
Could not find any relevant files for tool 'NUnit.ConsoleRunner'. Perhaps you need an include parameter?
Error: Failed to install tool 'NUnit.ConsoleRunner'.

当我添加一个特定的版本时,我想像下面这样使用,那么一切都很好。

代码语言:javascript
复制
#tool nuget:?package=NUnit.ConsoleRunner&version=3.7.0

有人能告诉我为什么没有版本的东西就不能工作吗?

通过使用".\build.ps1 -Verbosity诊断“,我得到了以下输出:

代码语言:javascript
复制
Preparing to run build script...
Running build script...
Module directory does not exist.
Analyzing build script...
Analyzing C:/dev/Xamarin/fleetboard-core-library/build.cake...
Processing build script...
Installing tools...
Installing NuGet package NUnit.ConsoleRunner...
Executing: "C:/dev/Xamarin/fleetboard-core-library/tools/nuget.exe" install "NUnit.ConsoleRunner" -OutputDirectory "C:/d
ev/Xamarin/fleetboard-core-library/tools" -ExcludeVersion -NonInteractive
Unable to find package 'NUnit.ConsoleRunner'
NuGet exited with 1
Feeds used:

Output:
Feeds used:

Could not find any relevant files for tool 'NUnit.ConsoleRunner'. Perhaps you need an include parameter?
Error: Cake.Core.CakeException: Failed to install tool 'NUnit.ConsoleRunner'.
   at Cake.Core.Scripting.ScriptProcessor.InstallTools(ScriptAnalyzerResult analyzerResult, DirectoryPath installPath)
   at Cake.Core.Scripting.ScriptRunner.Run(IScriptHost host, FilePath scriptPath, IDictionary`2 arguments)
   at Cake.Commands.BuildCommand.Execute(CakeOptions options)
   at Cake.CakeApplication.Run(CakeOptions options)
   at Cake.Program.Main()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-30 08:43:54

现在我发现了我的问题并解决了它。

问题是NuGet.exe没有指向像"https://api.nuget.org/v3/index.json“这样的公共nuget源的源提要。

这是因为我在"C:\Users\YOUR_USER_HOME\AppData\Roaming\NuGet“下的默认NuGet.conf没有定义packageSource。因此Nuget只知道"C:\Users\YOUR_USER_HOME.nuget\packages“下的本地nuget包缓存,而这并不包括指定的包。

因此,在"C:\Users\YOUR_USER_HOME\AppData\Roaming\NuGet\NuGet.Conf“中添加了一个packageSource之后,一切都很好。

另一种方法是在NuGet.Conf文件旁边添加一个新的build.ps1文件,其中包含CakeBuild和Xamarin项目所需的所有包源。

下一页解释Nuget如何找到它的配置。也许这有助于理解NuGet用于查找其配置的机制:https://learn.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45941101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档