dotnet / dotnet/arcade

build.ps1 'projects' variable resolution issues

Open
#1,255 2 comments 1 reaction 0 assignees View on GitHub
Dominant language
C#
Stars
729
Forks
397
Avg merge
3d 15m
Merged PRs (30d)
149

Description

Repro steps:

1. Given a repo with a solution at `./src/Proxy/Proxy.sln` (or some other relative path below the repo root)

2. Run the following command

```
./eng/common/build.ps1 -build -projects "./src/Proxy/Proxy.sln"
```

Expected behavior: Arcade builds the `./src/Proxy/Proxy.sln` project

Actual behavior: The following error:

```
C:\Users\anurse\.nuget\packages\microsoft.dotnet.arcade.sdk\1.0.0-beta.18526.8\tools\Build.proj(193,5): error MSB3202: The project file "./src/Proxy/Proxy.sln" was not found.
```

As far as I can tell, this is because nothing actually resolves the relative path before passing it to the `` task in the Arcade SDK's `Build.proj`. MSBuild resolves relative paths relative to the initial project file by default, so this means it is looking for these projects in the Arcade SDK.

I can work around this by always passing in a fully-qualified glob, but this is awkward.

On a related note, it's very difficult to pass a semicolon-delimited property value to MSBuild from the command line: https://github.com/Microsoft/msbuild/issues/471

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.