From 1a49a27344f74d6ea7936045c4e5e8b82393dfc4 Mon Sep 17 00:00:00 2001 From: SteveSandersonMS Date: Mon, 16 Jan 2017 15:25:41 +0000 Subject: [PATCH] Use correct docker base image for csproj projects. Fixes #574. --- templates/package-builder/src/build/build.ts | 6 +++++- templates/package-builder/src/yeoman/app/index.ts | 10 ++++++++-- templates/package-builder/src/yeoman/package.json | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/templates/package-builder/src/build/build.ts b/templates/package-builder/src/build/build.ts index 29d370d..9aa1818 100644 --- a/templates/package-builder/src/build/build.ts +++ b/templates/package-builder/src/build/build.ts @@ -30,7 +30,8 @@ const templates: { [key: string]: { dir: string, dotNetNewId: string, displayNam }; function isTextFile(filename: string): boolean { - return textFileExtensions.indexOf(path.extname(filename).toLowerCase()) >= 0; + return textFileExtensions.indexOf(path.extname(filename).toLowerCase()) >= 0 + || textFileExtensions.indexOf(path.basename(filename)) >= 0; } function writeFileEnsuringDirExists(root: string, filename: string, contents: string | Buffer) { @@ -92,6 +93,9 @@ function buildYeomanNpmPackage(outputRoot: string) { { from: /.*\.csproj$/, to: 'tokenreplace-namePascalCase.csproj' } ]; const contentReplacements = [ + // Dockerfile items + { from: /FROM microsoft\/dotnet:1.1.0-sdk-projectjson/g, to: 'FROM <%= dockerBaseImage %>' }, + // .xproj items { from: /\bWebApplicationBasic\b/g, to: '<%= namePascalCase %>' }, { from: /[0-9a-f\-]{36}<\/ProjectGuid>/g, to: '<%= projectGuid %>' }, diff --git a/templates/package-builder/src/yeoman/app/index.ts b/templates/package-builder/src/yeoman/app/index.ts index 8baba4f..245eff5 100644 --- a/templates/package-builder/src/yeoman/app/index.ts +++ b/templates/package-builder/src/yeoman/app/index.ts @@ -50,11 +50,13 @@ const templates = [ const sdkChoices = [{ value: '1.0.0-preview2-1-003177', // Current released version name: 'project.json' + chalk.gray(' (compatible with .NET Core tooling preview 2 and Visual Studio 2015)'), - includeFiles: [/^project.json$/, /\.xproj$/, /_placeholder.txt$/, /\.deployment$/] + includeFiles: [/^project.json$/, /\.xproj$/, /_placeholder.txt$/, /\.deployment$/], + dockerBaseImage: 'microsoft/dotnet:1.1.0-sdk-projectjson' }, { value: '1.0.0-preview3-004056', // Version that ships with VS2017RC name: '.csproj' + chalk.gray(' (compatible with .NET Core tooling preview 3 and Visual Studio 2017)'), - includeFiles: [/\.csproj$/] + includeFiles: [/\.csproj$/], + dockerBaseImage: 'microsoft/dotnet:1.1.0-sdk-msbuild' }]; class MyGenerator extends yeoman.Base { @@ -110,6 +112,10 @@ class MyGenerator extends yeoman.Base { this._answers.sdkVersion = firstAnswers.sdkVersion; this._answers.namePascalCase = toPascalCase(answers.name); this._answers.projectGuid = this.options['projectguid'] || uuid.v4(); + + const chosenSdk = sdkChoices.filter(sdk => sdk.value === this._answers.sdkVersion)[0]; + this._answers.dockerBaseImage = chosenSdk.dockerBaseImage; + done(); }); }); diff --git a/templates/package-builder/src/yeoman/package.json b/templates/package-builder/src/yeoman/package.json index df4d9f3..eaf8516 100644 --- a/templates/package-builder/src/yeoman/package.json +++ b/templates/package-builder/src/yeoman/package.json @@ -1,6 +1,6 @@ { "name": "generator-aspnetcore-spa", - "version": "0.7.3", + "version": "0.7.4", "description": "Single-Page App templates for ASP.NET Core", "author": "Microsoft", "license": "Apache-2.0",