cake-build / cake-build/cake

A comment precisely constructed with a hyperlink immediately after the // on the same line as your #addin preprocessor directive when just using the Package Name causes nuget to fail to find the package.

Open
#1,367 6 comments 0 reactions 0 assignees View on GitHub
Help wanted Improvement Up-for-grabs
Dominant language
C#
Stars
4.2k
Forks
778
Avg merge
1h 15m
Merged PRs (30d)
19

Description

### What You Are Seeing?
When I construct my addin directive with a comment that is a hyperlink and it immediately follows the // and is on the same line as the #addin and uses the package name only like below:

```
#addin "Cake.WebDeploy" //https://github.com/SharpeRAD/Cake.WebDeploy
```

Produces the following command line messages:

```sh
Installing addins....
Unable to find package 'Cake.WebDeploy'
Nuget exited with 1
Could not find any assemblies compatible with .NETFramework,Version=v4.5
```

If the comment is not a hyperlink OR does not immediately start as a hyperlink in the comment, it works.

```
#addin "Cake.WebDeploy" // https://github.com/SharpeRAD/Cake.WebDeploy => works, noting a space immediately following the //
#addin "Cake.WebDeploy" //see https://github.com/SharpeRAD/Cake.WebDeploy => works
#addin "Cake.WebDeploy" //allows for web deploy client installation usage => works
```

Move the comment above the #addin directive, works.

```
//https://github.com/SharpeRAD/Cake.WebDeploy
#addin "Cake.WebDeploy"
```

If I use the longer version of the directive that gives the package URI with the comment on the same line it works.

```
#addin nuget:?package=Cake.WebDeploy&version=0.1.9 //https://github.com/SharpeRAD/Cake.WebDeploy
```
### What version of Cake are you using?
0.17.0

### Are you running on a 32 or 64 bit system?
64 bit

### What environment are you running on? Windows? Linux? Mac?
Windows 7

### Are you running on a CI Server? If so, which one?
Not yet. :-)

### How Did You Get This To Happen? (Steps to Reproduce)
using a build.cake constructed like:

```
#addin Cake.WebDeploy //https:github.com/SharpeRAD/Cake.WebDeploy repo has usage samples
//////////////////////////////////////////////////////////////////////
// ARGUMENTS
//////////////////////////////////////////////////////////////////////

var target = Argument("target", "Default");
var configuration = Argument("configuration", "Debug");
```

with just build task that runs MSBUILD
and executed as .\build.ps1 -t build

### Output Log
Using the diagnostic logging level produces:

```sh
Installing addins...
Creating directory C:/Projects/TestProject/tools/Addins
Installing NuGet package Cake.WebDeploy...
Executing: "C:/Projects/TestProject/tools/nuget.exe" install "Cake.WebDeploy" -OutputDirectory "C:/Projects/TestProject/tools/Addins" -Source "file://github.com/SharpeRAD/Cake.WebDeploy/" -ExcludeVersion -NonInteractive -NoCache
NuGet exited with 1
Feeds used:
file://github.com/SharpeRAD/Cake.WebDeploy/
```

Output:

```sh
Feeds used:
file://github.com/SharpeRAD/Cake.WebDeploy/

Could not find any assemblies compatible with .NETFramework,Version=v4.5.
```

With the diagnostic level turned on the command line also produces:

```sh
Preparing to run build script...
Running build script...
Unable to find package 'Cake.WebDeploy'
Error: Cake.Core.CakeException: Failed to install addin 'Cake.WebDeploy'.
at Cake.Core.Scripting.ScriptProcessor.InstallAddins(ScriptAnalyzerResult ana
lyzerResult, 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()
```

Contributor guide

Open the contributing guide

Research direction

Run the supplied build.cake reproduction with Cake 0.17.0 and diagnostic logging, then compare it with the working variants that add a space or move the hyperlink above #addin. Trace how the #addin line is parsed and how the package source is formed; done means the immediate hyperlink remains a comment and Cake resolves Cake.WebDeploy from NuGet.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.