Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Specifying files for restore post action does not work #5922

Closed
Mrxx99 opened this issue Jan 13, 2023 · 3 comments
Closed

Specifying files for restore post action does not work #5922

Mrxx99 opened this issue Jan 13, 2023 · 3 comments
Assignees
Labels
Iteration:2023February need-customer-info Requires feedback from author size:5.0 triaged The issue was evaluated by the triage team, placed on correct area, next action defined.

Comments

@Mrxx99
Copy link
Contributor

Mrxx99 commented Jan 13, 2023

Product

dotnet CLI (dotnet new)

Describe The Bug

When adding a nuget restore post action, the files argument as described here is ignored and nuget packages are restored for all projects instead.
It does not work whether the files are specified by path (I am not using any source:source or source:target modifiers) or by index.
And the project files are correctly specified as primary outputs.

To Reproduce

Steps:

  1. Create a dotnet new template with multiple dotnet projects
  2. Add all project files (csproj/fsproj) to primary outputs array
  3. add a nuget restore post action with file args and specify only the first project (either by index 0 or by using the path of the project of the first primary output in an array)
  4. install the tempalte
  5. use the tempalte to create the templates in the CLI
  6. notice restore is performed for all project files specified in the primary outputs.

dotnet Info

output

.NET SDK:
Version: 7.0.102
Commit: 4bbdd14480

Runtime Environment:
OS Name: Windows
OS Version: 10.0.19045
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\7.0.102\

Host:
Version: 7.0.2
Architecture: x64
Commit: d037e070eb

.NET SDKs installed:
3.1.426 [C:\Program Files\dotnet\sdk]
5.0.408 [C:\Program Files\dotnet\sdk]
5.0.411 [C:\Program Files\dotnet\sdk]
6.0.203 [C:\Program Files\dotnet\sdk]
6.0.308 [C:\Program Files\dotnet\sdk]
7.0.100 [C:\Program Files\dotnet\sdk]
7.0.102 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
Microsoft.AspNetCore.All 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.28 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.29 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.31 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.32 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.13 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.28 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.29 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.30 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.31 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.32 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.28 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.29 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.30 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.31 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.32 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.2 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.8 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.11 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.13 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.2 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Other architectures found:
x86 [C:\Program Files (x86)\dotnet]
registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]

Environment variables:
Not set

global.json file:
Not found

Learn more:
https://aka.ms/dotnet/info

Download .NET:
https://aka.ms/dotnet/download

Visual Studio Version

No response

Additional context

grafik
grafik

@YuliiaKovalova
Copy link
Member

Hi @Mrxx99 ,

Thank you for the ticket and provided details. We are investigating the bug.

@YuliiaKovalova YuliiaKovalova added the need-investigation The issue needs the second look and more investigation label Jan 16, 2023
@YuliiaKovalova YuliiaKovalova added the triaged The issue was evaluated by the triage team, placed on correct area, next action defined. label Jan 25, 2023
@GangWang01
Copy link
Member

For nuget restore post action, as
documented the argument files is either a string that is a semicolon delimited list of paths to files, or an array of paths to files. It doesn't support indexes to the primary outputs like other post action.
Actually each path specified in files is used as glob pattern matching relative path of file in source template that is started with ./ or just a full file name without parent path. The doc doesn’t mention about this. We need to improve the doc.
If there is no file matched with glob pattern specified in the argument files, projects in primary outputs will be restored.

For this issue, though the argument files specified by path was not provided, I reproduced it with:

      "args": {
        "files": "AvaloniaTest/AvaloniaTest.csproj;AvaloniaTest.Desktop/AvaloniaTest.Desktop.csproj"
      }

@Mrxx99 let me know if this is not the case and provide detailed argument files specified by path. Then I can do more investigation.

To fix this issue, the file path glob pattern of argument files can be any of below.

glob pattern
exact path ./AvaloniaTest/AvaloniaTest.csproj;./AvaloniaTest.Desktop/AvaloniaTest.Desktop.csproj
with wildcard * */AvaloniaTest/AvaloniaTest.csproj;*/AvaloniaTest.Desktop/AvaloniaTest.Desktop.csproj
with globstar ** **/AvaloniaTest.csproj;**/AvaloniaTest.Desktop.csproj
file name without parent path AvaloniaTest.csproj;AvaloniaTest.Desktop.csproj

@YuliiaKovalova
Copy link
Member

Close the ticket since no customer reaction for 2 weeks - the explanation was provided and corresponding documentation was updated.
Feel free to post any topic-related questions in this thread.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Iteration:2023February need-customer-info Requires feedback from author size:5.0 triaged The issue was evaluated by the triage team, placed on correct area, next action defined.
Projects
None yet
Development

No branches or pull requests

5 participants