From 9c804e4586bd0d77733b742bf0cd7fec3b2ee7a1 Mon Sep 17 00:00:00 2001 From: Jimmy Byrd Date: Thu, 5 Oct 2023 20:05:18 -0400 Subject: [PATCH] Better devcontainers (#280) * Better fantomas on build * Better devcontainers --- .devcontainer/Dockerfile | 43 +++------- .devcontainer/devcontainer.json | 85 ++++++++++++++++--- .devcontainer/install-dotnets.sh | 23 ----- .devcontainer/settings.vscode.json | 7 -- Content/Console/.devcontainer/Dockerfile | 43 +++------- .../Console/.devcontainer/devcontainer.json | 85 ++++++++++++++++--- .../Console/.devcontainer/install-dotnets.sh | 23 ----- .../.devcontainer/settings.vscode.json | 7 -- Content/Console/Directory.Build.targets | 9 +- Content/Library/.devcontainer/Dockerfile | 43 +++------- .../Library/.devcontainer/devcontainer.json | 85 ++++++++++++++++--- .../Library/.devcontainer/install-dotnets.sh | 23 ----- .../.devcontainer/settings.vscode.json | 7 -- Content/Library/Directory.Build.targets | 9 +- Directory.Build.targets | 9 +- 15 files changed, 258 insertions(+), 243 deletions(-) delete mode 100644 .devcontainer/install-dotnets.sh delete mode 100644 .devcontainer/settings.vscode.json delete mode 100644 Content/Console/.devcontainer/install-dotnets.sh delete mode 100644 Content/Console/.devcontainer/settings.vscode.json delete mode 100644 Content/Library/.devcontainer/install-dotnets.sh delete mode 100644 Content/Library/.devcontainer/settings.vscode.json diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 7d75080a..96c07a33 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,40 +1,17 @@ -FROM debian:buster-slim - - -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - ca-certificates \ - \ - # .NET Core dependencies - libc6 \ - libgcc1 \ - libgssapi-krb5-2 \ - libicu63 \ - libssl1.1 \ - libstdc++6 \ - zlib1g \ - curl \ - git \ - procps \ - wget \ - && rm -rf /var/lib/apt/lists/* +# [Choice] Debian version (use bullseye on local arm64/Apple Silicon): bookworm, bullseye, buster +ARG VARIANT="bookworm" +FROM buildpack-deps:${VARIANT}-curl ENV \ # Enable detection of running in a container DOTNET_RUNNING_IN_CONTAINER=true \ - DOTNET_INSTALL_DIR=/usr/share/dotnet/ \ - DOTNET_ROOT=/usr/share/dotnet/ - -COPY ./.devcontainer/install-dotnets.sh global.json* . - -RUN /bin/bash install-dotnets.sh - -ENV PATH="$DOTNET_ROOT:${PATH}" -RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet + DOTNET_ROOT=/usr/share/dotnet/ \ + DOTNET_NOLOGO=true \ + DOTNET_CLI_TELEMETRY_OPTOUT=false\ + DOTNET_USE_POLLING_FILE_WATCHER=true -RUN dotnet --info -# Copy endpoint specific user settings into container to specify -# .NET Core should be used as the runtime. -COPY ./.devcontainer/settings.vscode.json /root/.vscode-remote/data/Machine/settings.json +# [Optional] Uncomment this section to install additional OS packages. +# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ +# && apt-get -y install --no-install-recommends diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index d15d7541..3f27ab2f 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,16 +1,73 @@ { - "name": "dotnet", - // Set the build context one level higher so we can grab metadata like global.json - "context": "..", - "dockerFile": "Dockerfile", - "forwardPorts": [ - 0 - ], - "extensions": [ - "ionide.ionide-fsharp", - "ms-dotnettools.csharp", - "editorconfig.editorconfig", - "ionide.ionide-paket", - "ionide.ionide-fake" - ] + "name": "dotnet", + // Set the build context one level higher so we can grab metadata like global.json + "context": "..", + "dockerFile": "Dockerfile", + "forwardPorts": [ + 0 + ], + "features": { + // https://github.com/devcontainers/features/blob/main/src/common-utils/README.md + "ghcr.io/devcontainers/features/common-utils:2": { + "installZsh": true, + "installOhMyZshConfig": true, + "configureZshAsDefaultShell": true, + "username": "vscode", + "userUid": "1000", + "userGid": "1000", + "upgradePackages": true + }, + // https://github.com/devcontainers/features/blob/main/src/github-cli/README.md + "ghcr.io/devcontainers/features/github-cli:1": {}, + // https://github.com/devcontainers-contrib/features/blob/main/src/starship/README.md + "ghcr.io/devcontainers-contrib/features/starship:1": {}, + // https://github.com/devcontainers/features/blob/main/src/dotnet/README.md + "ghcr.io/devcontainers/features/dotnet:2": { + "version": "7.0", + "additionalVersions": "6.0" + } + }, + "overrideFeatureInstallOrder": [ + "ghcr.io/devcontainers/features/common-utils", + "ghcr.io/devcontainers/features/github-cli", + "ghcr.io/devcontainers-contrib/features/starship", + "ghcr.io/devcontainers/features/dotnet" + ], + "customizations": { + "vscode": { + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "ms-dotnettools.csharp", + "Ionide.Ionide-fsharp", + "tintoy.msbuild-project-tools", + "ionide.ionide-paket", + "usernamehw.errorlens", + "alefragnani.Bookmarks", + "oderwat.indent-rainbow", + "vscode-icons-team.vscode-icons", + "EditorConfig.EditorConfig", + "ms-azuretools.vscode-docker", + "GitHub.vscode-pull-request-github", + "github.vscode-github-actions" + ], + "settings": { + "terminal.integrated.defaultProfile.linux": "zsh", + "csharp.suppressDotnetInstallWarning": true + } + } + }, + "remoteUser": "vscode", + "containerUser": "vscode", + "containerEnv": { + // Expose the local environment variable to the container + // They are used for releasing and publishing from the container + "GITHUB_TOKEN": "${localEnv:GITHUB_TOKEN}" + }, + "onCreateCommand": { + "enable-starship": "echo 'eval \"$(starship init zsh)\"' >> ~/.zshrc" + }, + "postAttachCommand": { + "restore": "dotnet tool restore && dotnet restore" + }, + "waitFor": "updateContentCommand" } \ No newline at end of file diff --git a/.devcontainer/install-dotnets.sh b/.devcontainer/install-dotnets.sh deleted file mode 100644 index 58cb17a1..00000000 --- a/.devcontainer/install-dotnets.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -# downloads installer script https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script -curl -SL --output dotnet-install.sh https://dot.net/v1/dotnet-install.sh - - -# Attempt to install via global.json first -FILE=global.json -if test -f "$FILE"; then - echo "installing dotnet via $FILE" - /bin/bash dotnet-install.sh --verbose --jsonfile $FILE -fi - - -# Add additional versions if required -DOTNET_VERSIONS=( - # 'latest' - #'5.0.100' -) -for version in ${DOTNET_VERSIONS[@]}; do - echo "installing dotnet $version" - /bin/bash dotnet-install.sh --verbose --version $version -done diff --git a/.devcontainer/settings.vscode.json b/.devcontainer/settings.vscode.json deleted file mode 100644 index 3630b48c..00000000 --- a/.devcontainer/settings.vscode.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "FSharp.fsacRuntime":"netcore", - "FSharp.enableAnalyzers": true, - "FSharp.analyzersPath": [ - "./packages/analyzers" - ] -} diff --git a/Content/Console/.devcontainer/Dockerfile b/Content/Console/.devcontainer/Dockerfile index 2392de83..96c07a33 100644 --- a/Content/Console/.devcontainer/Dockerfile +++ b/Content/Console/.devcontainer/Dockerfile @@ -1,40 +1,17 @@ -FROM debian:buster-slim - - -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - ca-certificates \ - \ - # .NET Core dependencies - libc6 \ - libgcc1 \ - libgssapi-krb5-2 \ - libicu63 \ - libssl1.1 \ - libstdc++6 \ - zlib1g \ - curl \ - git \ - procps \ - wget \ - && rm -rf /var/lib/apt/lists/* +# [Choice] Debian version (use bullseye on local arm64/Apple Silicon): bookworm, bullseye, buster +ARG VARIANT="bookworm" +FROM buildpack-deps:${VARIANT}-curl ENV \ # Enable detection of running in a container DOTNET_RUNNING_IN_CONTAINER=true \ - DOTNET_INSTALL_DIR=/usr/share/dotnet/ \ - DOTNET_ROOT=/usr/share/dotnet/ - -COPY ./.devcontainer/install-dotnets.sh global.json* ./ - -RUN /bin/bash install-dotnets.sh - -ENV PATH="$DOTNET_ROOT:${PATH}" -RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet + DOTNET_ROOT=/usr/share/dotnet/ \ + DOTNET_NOLOGO=true \ + DOTNET_CLI_TELEMETRY_OPTOUT=false\ + DOTNET_USE_POLLING_FILE_WATCHER=true -RUN dotnet --info -# Copy endpoint specific user settings into container to specify -# .NET Core should be used as the runtime. -COPY ./.devcontainer/settings.vscode.json /root/.vscode-remote/data/Machine/settings.json +# [Optional] Uncomment this section to install additional OS packages. +# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ +# && apt-get -y install --no-install-recommends diff --git a/Content/Console/.devcontainer/devcontainer.json b/Content/Console/.devcontainer/devcontainer.json index d15d7541..3f27ab2f 100644 --- a/Content/Console/.devcontainer/devcontainer.json +++ b/Content/Console/.devcontainer/devcontainer.json @@ -1,16 +1,73 @@ { - "name": "dotnet", - // Set the build context one level higher so we can grab metadata like global.json - "context": "..", - "dockerFile": "Dockerfile", - "forwardPorts": [ - 0 - ], - "extensions": [ - "ionide.ionide-fsharp", - "ms-dotnettools.csharp", - "editorconfig.editorconfig", - "ionide.ionide-paket", - "ionide.ionide-fake" - ] + "name": "dotnet", + // Set the build context one level higher so we can grab metadata like global.json + "context": "..", + "dockerFile": "Dockerfile", + "forwardPorts": [ + 0 + ], + "features": { + // https://github.com/devcontainers/features/blob/main/src/common-utils/README.md + "ghcr.io/devcontainers/features/common-utils:2": { + "installZsh": true, + "installOhMyZshConfig": true, + "configureZshAsDefaultShell": true, + "username": "vscode", + "userUid": "1000", + "userGid": "1000", + "upgradePackages": true + }, + // https://github.com/devcontainers/features/blob/main/src/github-cli/README.md + "ghcr.io/devcontainers/features/github-cli:1": {}, + // https://github.com/devcontainers-contrib/features/blob/main/src/starship/README.md + "ghcr.io/devcontainers-contrib/features/starship:1": {}, + // https://github.com/devcontainers/features/blob/main/src/dotnet/README.md + "ghcr.io/devcontainers/features/dotnet:2": { + "version": "7.0", + "additionalVersions": "6.0" + } + }, + "overrideFeatureInstallOrder": [ + "ghcr.io/devcontainers/features/common-utils", + "ghcr.io/devcontainers/features/github-cli", + "ghcr.io/devcontainers-contrib/features/starship", + "ghcr.io/devcontainers/features/dotnet" + ], + "customizations": { + "vscode": { + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "ms-dotnettools.csharp", + "Ionide.Ionide-fsharp", + "tintoy.msbuild-project-tools", + "ionide.ionide-paket", + "usernamehw.errorlens", + "alefragnani.Bookmarks", + "oderwat.indent-rainbow", + "vscode-icons-team.vscode-icons", + "EditorConfig.EditorConfig", + "ms-azuretools.vscode-docker", + "GitHub.vscode-pull-request-github", + "github.vscode-github-actions" + ], + "settings": { + "terminal.integrated.defaultProfile.linux": "zsh", + "csharp.suppressDotnetInstallWarning": true + } + } + }, + "remoteUser": "vscode", + "containerUser": "vscode", + "containerEnv": { + // Expose the local environment variable to the container + // They are used for releasing and publishing from the container + "GITHUB_TOKEN": "${localEnv:GITHUB_TOKEN}" + }, + "onCreateCommand": { + "enable-starship": "echo 'eval \"$(starship init zsh)\"' >> ~/.zshrc" + }, + "postAttachCommand": { + "restore": "dotnet tool restore && dotnet restore" + }, + "waitFor": "updateContentCommand" } \ No newline at end of file diff --git a/Content/Console/.devcontainer/install-dotnets.sh b/Content/Console/.devcontainer/install-dotnets.sh deleted file mode 100644 index 58cb17a1..00000000 --- a/Content/Console/.devcontainer/install-dotnets.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -# downloads installer script https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script -curl -SL --output dotnet-install.sh https://dot.net/v1/dotnet-install.sh - - -# Attempt to install via global.json first -FILE=global.json -if test -f "$FILE"; then - echo "installing dotnet via $FILE" - /bin/bash dotnet-install.sh --verbose --jsonfile $FILE -fi - - -# Add additional versions if required -DOTNET_VERSIONS=( - # 'latest' - #'5.0.100' -) -for version in ${DOTNET_VERSIONS[@]}; do - echo "installing dotnet $version" - /bin/bash dotnet-install.sh --verbose --version $version -done diff --git a/Content/Console/.devcontainer/settings.vscode.json b/Content/Console/.devcontainer/settings.vscode.json deleted file mode 100644 index f708a66c..00000000 --- a/Content/Console/.devcontainer/settings.vscode.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "FSharp.fsacRuntime":"netcore", - "FSharp.enableAnalyzers": true, - "FSharp.analyzersPath": [ - "./packages/analyzers" - ] -} diff --git a/Content/Console/Directory.Build.targets b/Content/Console/Directory.Build.targets index 09d67361..d0f9a530 100644 --- a/Content/Console/Directory.Build.targets +++ b/Content/Console/Directory.Build.targets @@ -7,8 +7,8 @@ See https://learn.microsoft.com/en-us/visualstudio/msbuild/customize-by-director <_BuildProjBaseIntermediateOutputPath>$(MSBuildThisFileDirectory)build/obj/ <_DotnetToolManifestFile>$(MSBuildThisFileDirectory).config/dotnet-tools.json - <_DotnetToolRestoreOutputFile>$(_BuildProjBaseIntermediateOutputPath)/dotnet-tool-restore-$(NETCoreSdkVersion) - <_DotnetFantomasOutputFile>$(BaseIntermediateOutputPath)dotnet-fantomas-msbuild + <_DotnetToolRestoreOutputFile>$(_BuildProjBaseIntermediateOutputPath)/dotnet-tool-restore-$(NETCoreSdkVersion)-$(OS) + <_DotnetFantomasOutputFile>$(BaseIntermediateOutputPath)dotnet-fantomas-msbuild-$(NETCoreSdkVersion)-$(OS) @@ -19,8 +19,9 @@ See https://learn.microsoft.com/en-us/visualstudio/msbuild/customize-by-director - - + + + diff --git a/Content/Library/.devcontainer/Dockerfile b/Content/Library/.devcontainer/Dockerfile index 2392de83..96c07a33 100644 --- a/Content/Library/.devcontainer/Dockerfile +++ b/Content/Library/.devcontainer/Dockerfile @@ -1,40 +1,17 @@ -FROM debian:buster-slim - - -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - ca-certificates \ - \ - # .NET Core dependencies - libc6 \ - libgcc1 \ - libgssapi-krb5-2 \ - libicu63 \ - libssl1.1 \ - libstdc++6 \ - zlib1g \ - curl \ - git \ - procps \ - wget \ - && rm -rf /var/lib/apt/lists/* +# [Choice] Debian version (use bullseye on local arm64/Apple Silicon): bookworm, bullseye, buster +ARG VARIANT="bookworm" +FROM buildpack-deps:${VARIANT}-curl ENV \ # Enable detection of running in a container DOTNET_RUNNING_IN_CONTAINER=true \ - DOTNET_INSTALL_DIR=/usr/share/dotnet/ \ - DOTNET_ROOT=/usr/share/dotnet/ - -COPY ./.devcontainer/install-dotnets.sh global.json* ./ - -RUN /bin/bash install-dotnets.sh - -ENV PATH="$DOTNET_ROOT:${PATH}" -RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet + DOTNET_ROOT=/usr/share/dotnet/ \ + DOTNET_NOLOGO=true \ + DOTNET_CLI_TELEMETRY_OPTOUT=false\ + DOTNET_USE_POLLING_FILE_WATCHER=true -RUN dotnet --info -# Copy endpoint specific user settings into container to specify -# .NET Core should be used as the runtime. -COPY ./.devcontainer/settings.vscode.json /root/.vscode-remote/data/Machine/settings.json +# [Optional] Uncomment this section to install additional OS packages. +# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ +# && apt-get -y install --no-install-recommends diff --git a/Content/Library/.devcontainer/devcontainer.json b/Content/Library/.devcontainer/devcontainer.json index d15d7541..3f27ab2f 100644 --- a/Content/Library/.devcontainer/devcontainer.json +++ b/Content/Library/.devcontainer/devcontainer.json @@ -1,16 +1,73 @@ { - "name": "dotnet", - // Set the build context one level higher so we can grab metadata like global.json - "context": "..", - "dockerFile": "Dockerfile", - "forwardPorts": [ - 0 - ], - "extensions": [ - "ionide.ionide-fsharp", - "ms-dotnettools.csharp", - "editorconfig.editorconfig", - "ionide.ionide-paket", - "ionide.ionide-fake" - ] + "name": "dotnet", + // Set the build context one level higher so we can grab metadata like global.json + "context": "..", + "dockerFile": "Dockerfile", + "forwardPorts": [ + 0 + ], + "features": { + // https://github.com/devcontainers/features/blob/main/src/common-utils/README.md + "ghcr.io/devcontainers/features/common-utils:2": { + "installZsh": true, + "installOhMyZshConfig": true, + "configureZshAsDefaultShell": true, + "username": "vscode", + "userUid": "1000", + "userGid": "1000", + "upgradePackages": true + }, + // https://github.com/devcontainers/features/blob/main/src/github-cli/README.md + "ghcr.io/devcontainers/features/github-cli:1": {}, + // https://github.com/devcontainers-contrib/features/blob/main/src/starship/README.md + "ghcr.io/devcontainers-contrib/features/starship:1": {}, + // https://github.com/devcontainers/features/blob/main/src/dotnet/README.md + "ghcr.io/devcontainers/features/dotnet:2": { + "version": "7.0", + "additionalVersions": "6.0" + } + }, + "overrideFeatureInstallOrder": [ + "ghcr.io/devcontainers/features/common-utils", + "ghcr.io/devcontainers/features/github-cli", + "ghcr.io/devcontainers-contrib/features/starship", + "ghcr.io/devcontainers/features/dotnet" + ], + "customizations": { + "vscode": { + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "ms-dotnettools.csharp", + "Ionide.Ionide-fsharp", + "tintoy.msbuild-project-tools", + "ionide.ionide-paket", + "usernamehw.errorlens", + "alefragnani.Bookmarks", + "oderwat.indent-rainbow", + "vscode-icons-team.vscode-icons", + "EditorConfig.EditorConfig", + "ms-azuretools.vscode-docker", + "GitHub.vscode-pull-request-github", + "github.vscode-github-actions" + ], + "settings": { + "terminal.integrated.defaultProfile.linux": "zsh", + "csharp.suppressDotnetInstallWarning": true + } + } + }, + "remoteUser": "vscode", + "containerUser": "vscode", + "containerEnv": { + // Expose the local environment variable to the container + // They are used for releasing and publishing from the container + "GITHUB_TOKEN": "${localEnv:GITHUB_TOKEN}" + }, + "onCreateCommand": { + "enable-starship": "echo 'eval \"$(starship init zsh)\"' >> ~/.zshrc" + }, + "postAttachCommand": { + "restore": "dotnet tool restore && dotnet restore" + }, + "waitFor": "updateContentCommand" } \ No newline at end of file diff --git a/Content/Library/.devcontainer/install-dotnets.sh b/Content/Library/.devcontainer/install-dotnets.sh deleted file mode 100644 index 58cb17a1..00000000 --- a/Content/Library/.devcontainer/install-dotnets.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -# downloads installer script https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script -curl -SL --output dotnet-install.sh https://dot.net/v1/dotnet-install.sh - - -# Attempt to install via global.json first -FILE=global.json -if test -f "$FILE"; then - echo "installing dotnet via $FILE" - /bin/bash dotnet-install.sh --verbose --jsonfile $FILE -fi - - -# Add additional versions if required -DOTNET_VERSIONS=( - # 'latest' - #'5.0.100' -) -for version in ${DOTNET_VERSIONS[@]}; do - echo "installing dotnet $version" - /bin/bash dotnet-install.sh --verbose --version $version -done diff --git a/Content/Library/.devcontainer/settings.vscode.json b/Content/Library/.devcontainer/settings.vscode.json deleted file mode 100644 index f708a66c..00000000 --- a/Content/Library/.devcontainer/settings.vscode.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "FSharp.fsacRuntime":"netcore", - "FSharp.enableAnalyzers": true, - "FSharp.analyzersPath": [ - "./packages/analyzers" - ] -} diff --git a/Content/Library/Directory.Build.targets b/Content/Library/Directory.Build.targets index 09d67361..d0f9a530 100644 --- a/Content/Library/Directory.Build.targets +++ b/Content/Library/Directory.Build.targets @@ -7,8 +7,8 @@ See https://learn.microsoft.com/en-us/visualstudio/msbuild/customize-by-director <_BuildProjBaseIntermediateOutputPath>$(MSBuildThisFileDirectory)build/obj/ <_DotnetToolManifestFile>$(MSBuildThisFileDirectory).config/dotnet-tools.json - <_DotnetToolRestoreOutputFile>$(_BuildProjBaseIntermediateOutputPath)/dotnet-tool-restore-$(NETCoreSdkVersion) - <_DotnetFantomasOutputFile>$(BaseIntermediateOutputPath)dotnet-fantomas-msbuild + <_DotnetToolRestoreOutputFile>$(_BuildProjBaseIntermediateOutputPath)/dotnet-tool-restore-$(NETCoreSdkVersion)-$(OS) + <_DotnetFantomasOutputFile>$(BaseIntermediateOutputPath)dotnet-fantomas-msbuild-$(NETCoreSdkVersion)-$(OS) @@ -19,8 +19,9 @@ See https://learn.microsoft.com/en-us/visualstudio/msbuild/customize-by-director - - + + + diff --git a/Directory.Build.targets b/Directory.Build.targets index 09d67361..d0f9a530 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -7,8 +7,8 @@ See https://learn.microsoft.com/en-us/visualstudio/msbuild/customize-by-director <_BuildProjBaseIntermediateOutputPath>$(MSBuildThisFileDirectory)build/obj/ <_DotnetToolManifestFile>$(MSBuildThisFileDirectory).config/dotnet-tools.json - <_DotnetToolRestoreOutputFile>$(_BuildProjBaseIntermediateOutputPath)/dotnet-tool-restore-$(NETCoreSdkVersion) - <_DotnetFantomasOutputFile>$(BaseIntermediateOutputPath)dotnet-fantomas-msbuild + <_DotnetToolRestoreOutputFile>$(_BuildProjBaseIntermediateOutputPath)/dotnet-tool-restore-$(NETCoreSdkVersion)-$(OS) + <_DotnetFantomasOutputFile>$(BaseIntermediateOutputPath)dotnet-fantomas-msbuild-$(NETCoreSdkVersion)-$(OS) @@ -19,8 +19,9 @@ See https://learn.microsoft.com/en-us/visualstudio/msbuild/customize-by-director - - + + +