我使用CakeBuild来构建和测试我的Xamarin便携式类库。
在build.cake脚本中,我定义要使用NUnit-控制台来运行测试用例。所以我知道
#tool nuget:?package=NUnit.ConsoleRunner不幸的是,当我运行Cake脚本时,我会得到以下错误。
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'.当我添加一个特定的版本时,我想像下面这样使用,那么一切都很好。
#tool nuget:?package=NUnit.ConsoleRunner&version=3.7.0有人能告诉我为什么没有版本的东西就不能工作吗?
通过使用".\build.ps1 -Verbosity诊断“,我得到了以下输出:
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()发布于 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
https://stackoverflow.com/questions/45941101
复制相似问题