From a40eaab146ea2320f074e82035cd1b3bdee573fe Mon Sep 17 00:00:00 2001 From: Nate McMaster Date: Mon, 6 Aug 2018 18:28:13 -0700 Subject: [PATCH] Automate authenticode code-signing using Roslyn sign tool * Change project layout to prepare for upcoming Arcade changes * Add signtool config file to configure OPC, NuGet, and Authenticode signing * Fix a bug when BaseIntermediateOutputPath is set to an absolute path --- .appveyor.yml | 4 +- .editorconfig | 7 +- .gitignore | 3 +- .travis.yml | 7 +- .vsts/builds/ci-official.yml | 22 ++ .vsts/builds/ci-public.yml | 10 + .../templates/blazor-build.yml | 82 +++--- Directory.Build.props | 15 +- build/SignToolData.json | 246 ++++++++++++++++++ build/VSIX.targets | 42 +-- build/arcade.props | 37 +++ build/dependencies.props | 5 +- build/repo.props | 11 +- build/repo.targets | 8 +- build/sign.proj | 31 +++ build/sources.props | 3 +- global.json | 2 +- korebuild-lock.txt | 4 +- samples/Directory.Build.props | 7 + .../.gitignore | 1 - .../Microsoft.AspNetCore.Blazor.Build.csproj | 9 +- .../ReferenceFromSource.props | 6 +- .../targets/All.targets | 5 +- .../targets/Blazor.MonoRuntime.targets | 3 +- .../targets/Publish.targets | 6 +- .../targets/RazorCompilation.targets | 30 +-- .../.gitignore | 1 - ...rosoft.AspNetCore.Blazor.BuildTools.csproj | 1 - .../ReferenceFromSource.props | 2 +- .../.gitignore | 2 +- .../content/Directory.Build.props | 4 + .../content/Directory.Build.targets | 2 + test/testapps/Directory.Build.props | 7 + ...rosoft.VisualStudio.BlazorExtension.csproj | 14 +- 34 files changed, 500 insertions(+), 139 deletions(-) create mode 100644 .vsts/builds/ci-official.yml create mode 100644 .vsts/builds/ci-public.yml rename .vsts-ci.yml => .vsts/templates/blazor-build.yml (53%) create mode 100644 build/SignToolData.json create mode 100644 build/arcade.props create mode 100644 build/sign.proj create mode 100644 samples/Directory.Build.props delete mode 100644 src/Microsoft.AspNetCore.Blazor.Build/.gitignore delete mode 100644 src/Microsoft.AspNetCore.Blazor.BuildTools/.gitignore create mode 100644 src/Microsoft.AspNetCore.Blazor.Templates/content/Directory.Build.props create mode 100644 src/Microsoft.AspNetCore.Blazor.Templates/content/Directory.Build.targets create mode 100644 test/testapps/Directory.Build.props diff --git a/.appveyor.yml b/.appveyor.yml index 56002096..a68df944 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -15,13 +15,13 @@ test: 'off' deploy: 'off' os: Visual Studio 2017 Preview build_script: - - build.cmd /p:SkipTests=true /p:BlazorOutputStatistics=true + - build.cmd -ci /p:SkipTests=true /p:BlazorOutputStatistics=true before_test: - choco install googlechrome --ignore-checksum - npm install -g selenium-standalone@latest - selenium-standalone install - ps: $SeleniumProcess = Start-Process "selenium-standalone" -ArgumentList "start" -PassThru test_script: - - build.cmd /t:Test /p:BlazorAllTests=true /p:BlazorOutputStatistics=true + - build.cmd -ci /t:Test /p:BlazorAllTests=true /p:BlazorOutputStatistics=true after_test: - ps: Stop-Process -Id $SeleniumProcess.Id diff --git a/.editorconfig b/.editorconfig index 672a9042..0d238f8e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -20,5 +20,8 @@ trim_trailing_whitespace = false insert_final_newline = true indent_size = 2 -[*.yml] -indent_size = 2 \ No newline at end of file +[*.{yml,json}] +indent_size = 2 + +[*.{xml,csproj,config,*proj,targets,props}] +indent_size = 2 diff --git a/.gitignore b/.gitignore index eabb0b0e..33382d59 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ launchSettings.json artifacts/ msbuild.binlog .vscode/ -BenchmarkDotNet.Artifacts/ \ No newline at end of file +BenchmarkDotNet.Artifacts/ +*.binlog diff --git a/.travis.yml b/.travis.yml index eedf8b33..ffda147b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,10 +31,9 @@ install: - npm install -g selenium-standalone - selenium-standalone install - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export TEST_CHROME_BINARY=`which google-chrome-stable`; fi - - export DOTNET_INSTALL_DIR="$PWD/.dotnetcli" - - curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel Current --version latest --install-dir "$DOTNET_INSTALL_DIR" + - export DOTNET_INSTALL_DIR="$PWD/.dotnet" - export PATH="$DOTNET_INSTALL_DIR:$PATH" script: - - ./build.sh /p:SkipTests=true /p:BlazorOutputStatistics=true + - ./build.sh --ci /p:SkipTests=true /p:BlazorOutputStatistics=true - selenium-standalone start & - - ./build.sh /t:Test /p:BlazorAllTests=true + - ./build.sh --ci /t:Test /p:BlazorAllTests=true diff --git a/.vsts/builds/ci-official.yml b/.vsts/builds/ci-official.yml new file mode 100644 index 00000000..7068b8d1 --- /dev/null +++ b/.vsts/builds/ci-official.yml @@ -0,0 +1,22 @@ +trigger: +- master +- release/* + +phases: +- template: ../templates/blazor-build.yml + parameters: + queueName: VSEng-MicroBuildVS2017 + variables: + SignType: real + TeamName: AspNetCore + beforeBuild: + - task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1 + displayName: Install CodeSigning plugin + inputs: + signType: $(SignType) + condition: and(succeeded(), in(variables['SignType'], 'test', 'real')) + + afterBuild: + - task: ms-vseng.MicroBuildTasks.521a94ea-9e68-468a-8167-6dcf361ea776.MicroBuildCleanup@1 + displayName: Perform Cleanup Tasks + condition: succeededOrFailed() diff --git a/.vsts/builds/ci-public.yml b/.vsts/builds/ci-public.yml new file mode 100644 index 00000000..9b77356d --- /dev/null +++ b/.vsts/builds/ci-public.yml @@ -0,0 +1,10 @@ +trigger: +- master +- release/* + +phases: +- template: ../templates/blazor-build.yml + parameters: + queueName: Hosted VS2017 + variables: + SkipCodeSign: true diff --git a/.vsts-ci.yml b/.vsts/templates/blazor-build.yml similarity index 53% rename from .vsts-ci.yml rename to .vsts/templates/blazor-build.yml index 23077d5c..3b9a6d68 100644 --- a/.vsts-ci.yml +++ b/.vsts/templates/blazor-build.yml @@ -1,31 +1,51 @@ -trigger: -- master -- release/* -phases: -- phase: Windows - queue: - name: Hosted VS2017 - parallel: 2 - matrix: - Debug: - BuildConfiguration: Debug - Release: - BuildConfiguration: Release - steps: - - checkout: self - clean: true - - script: .\build.cmd -ci /p:Configuration=$(BuildConfiguration) - displayName: Run build.cmd - - task: PublishTestResults@2 - displayName: Publish test results - condition: always() - inputs: - testRunner: vstest - testResultsFiles: 'artifacts/logs/**/*.trx' - - task: PublishBuildArtifacts@1 - displayName: Upload artifacts - condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false)) - inputs: - pathtoPublish: artifacts/ - artifactName: artifacts-$(BuildConfiguration) - artifactType: Container +parameters: + queueName: '' + beforeBuild: [] + afterBuild: [] + variables: + +phases: +- phase: Windows + queue: + name: ${{ parameters.queueName }} + parallel: 2 + matrix: + Release: + BuildConfiguration: Release + Debug: + BuildConfiguration: Debug + variables: + ${{ insert }}: ${{ parameters.variables }} + steps: + - checkout: self + clean: true + + - ${{ parameters.beforeBuild }} + + - script: .\build.cmd -ci /p:Configuration=$(BuildConfiguration) + displayName: Run build.cmd + + - task: PublishTestResults@2 + displayName: Publish test results + condition: always() + inputs: + testRunner: vstest + testResultsFiles: 'artifacts/logs/**/*.trx' + + - task: PublishBuildArtifacts@1 + displayName: Upload artifacts + condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false)) + inputs: + pathtoPublish: artifacts/$(BuildConfiguration)/ + artifactName: artifacts-$(BuildConfiguration) + artifactType: Container + + - task: PublishBuildArtifacts@1 + displayName: Upload logs + condition: and(failed(), eq(variables['system.pullrequest.isfork'], false)) + inputs: + pathtoPublish: artifacts/logs/ + artifactName: logs-$(BuildConfiguration) + artifactType: Container + + - ${{ parameters.afterBuild }} diff --git a/Directory.Build.props b/Directory.Build.props index 7662e561..dc507052 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -6,7 +6,7 @@ - + Microsoft ASP.NET Core Blazor https://github.com/aspnet/blazor @@ -23,11 +23,14 @@ false + + + + + $(ArtifactsBinDir)Microsoft.AspNetCore.Blazor.Build\netcoreapp2.1\ + + - - - 2.1.0 - - \ No newline at end of file + diff --git a/build/SignToolData.json b/build/SignToolData.json new file mode 100644 index 00000000..16d7616b --- /dev/null +++ b/build/SignToolData.json @@ -0,0 +1,246 @@ +{ + "sign": [ + { + "certificate": "Microsoft", + "values": [ + "bin/Microsoft.AspNetCore.Blazor.Analyzers/netstandard1.3/Microsoft.AspNetCore.Blazor.Analyzers.dll", + "bin/Microsoft.AspNetCore.Blazor.Browser.JS/netcoreapp2.1/Microsoft.AspNetCore.Blazor.Browser.JS.dll", + "bin/Microsoft.AspNetCore.Blazor.Browser/netstandard2.0/Microsoft.AspNetCore.Blazor.Browser.dll", + "bin/Microsoft.AspNetCore.Blazor.Server/netstandard2.0/Microsoft.AspNetCore.Blazor.Server.dll", + "bin/Microsoft.AspNetCore.Blazor.Build/netcoreapp2.1/Microsoft.AspNetCore.Blazor.Build.dll", + "bin/Microsoft.AspNetCore.Blazor.Cli/netcoreapp2.1/dotnet-blazor.dll", + "bin/Microsoft.AspNetCore.Blazor.Razor.Extensions/net461/Microsoft.AspNetCore.Blazor.Razor.Extensions.dll", + "bin/Microsoft.AspNetCore.Blazor.Razor.Extensions/netstandard2.0/Microsoft.AspNetCore.Blazor.Razor.Extensions.dll", + "bin/Microsoft.AspNetCore.Blazor/netstandard2.0/Microsoft.AspNetCore.Blazor.dll", + "bin/Microsoft.JSInterop/netstandard2.0/Microsoft.JSInterop.dll", + "bin/Microsoft.VisualStudio.BlazorExtension/Microsoft.VisualStudio.BlazorExtension.dll", + "bin/Microsoft.VisualStudio.LanguageServices.Blazor/net461/Microsoft.VisualStudio.LanguageServices.Blazor.dll", + "bin/Mono.WebAssembly.Interop/netstandard2.0/Mono.WebAssembly.Interop.dll" + ] + }, + { + "certificate": "3PartyDual", + "values": [ + "bin/Microsoft.AspNetCore.Blazor.Build/netcoreapp2.1/AngleSharp.dll", + "bin/Microsoft.VisualStudio.BlazorExtension/AngleSharp.dll" + ] + }, + { + "certificate": "Vsix", + "values": [ + "bin/Microsoft.VisualStudio.BlazorExtension/Microsoft.VisualStudio.BlazorExtension.vsix" + ] + }, + { + "certificate": "NuGet", + "strongName": null, + "values": [ + "packages/*.nupkg" + ] + } + ], + "exclude": [ + "illink.dll", + "Microsoft.AspNetCore.Razor.Language.dll", + "Microsoft.CodeAnalysis.dll", + "Microsoft.CodeAnalysis.CSharp.dll", + "Microsoft.CodeAnalysis.Razor.dll", + "Microsoft.Extensions.CommandLineUtils.dll", + "Microsoft.Extensions.FileProviders.Abstractions.dll", + "Microsoft.Extensions.FileProviders.Composite.dll", + "Microsoft.Extensions.FileProviders.Embedded.dll", + "Microsoft.Extensions.FileProviders.Physical.dll", + "Microsoft.Extensions.FileSystemGlobbing.dll", + "Microsoft.Extensions.Primitives.dll", + "Mono.Cecil.dll", + "Mono.Cecil.Mdb.dll", + "Mono.Cecil.Pdb.dll", + "Mono.Cecil.Rocks.dll", + "I18N.CJK.dll", + "I18N.dll", + "I18N.MidEast.dll", + "I18N.Other.dll", + "I18N.Rare.dll", + "I18N.West.dll", + "Microsoft.CSharp.dll", + "Microsoft.Win32.Primitives.dll", + "Microsoft.Win32.Registry.AccessControl.dll", + "Microsoft.Win32.Registry.dll", + "Mono.CSharp.dll", + "Mono.Data.Sqlite.dll", + "Mono.Data.Tds.dll", + "Mono.Security.dll", + "mscorlib.dll", + "netstandard.dll", + "System.AppContext.dll", + "System.CodeDom.dll", + "System.Collections.Concurrent.dll", + "System.Collections.dll", + "System.Collections.NonGeneric.dll", + "System.Collections.Specialized.dll", + "System.ComponentModel.Annotations.dll", + "System.ComponentModel.Composition.dll", + "System.ComponentModel.DataAnnotations.dll", + "System.ComponentModel.dll", + "System.ComponentModel.EventBasedAsync.dll", + "System.ComponentModel.Primitives.dll", + "System.ComponentModel.TypeConverter.dll", + "System.Console.dll", + "System.Core.dll", + "System.Data.Common.dll", + "System.Data.dll", + "System.Data.Services.Client.dll", + "System.Data.SqlClient.dll", + "System.Diagnostics.Contracts.dll", + "System.Diagnostics.Debug.dll", + "System.Diagnostics.FileVersionInfo.dll", + "System.Diagnostics.Process.dll", + "System.Diagnostics.StackTrace.dll", + "System.Diagnostics.TextWriterTraceListener.dll", + "System.Diagnostics.Tools.dll", + "System.Diagnostics.TraceEvent.dll", + "System.Diagnostics.TraceSource.dll", + "System.Diagnostics.Tracing.dll", + "System.dll", + "System.Drawing.Common.dll", + "System.Drawing.dll", + "System.Drawing.Primitives.dll", + "System.Dynamic.Runtime.dll", + "System.Globalization.Calendars.dll", + "System.Globalization.dll", + "System.Globalization.Extensions.dll", + "System.IdentityModel.dll", + "System.IO.Compression.dll", + "System.IO.Compression.FileSystem.dll", + "System.IO.Compression.ZipFile.dll", + "System.IO.dll", + "System.IO.FileSystem.AccessControl.dll", + "System.IO.FileSystem.dll", + "System.IO.FileSystem.DriveInfo.dll", + "System.IO.FileSystem.Primitives.dll", + "System.IO.FileSystem.Watcher.dll", + "System.IO.IsolatedStorage.dll", + "System.IO.MemoryMappedFiles.dll", + "System.IO.Pipes.dll", + "System.IO.UnmanagedMemoryStream.dll", + "System.Json.dll", + "System.Linq.dll", + "System.Linq.Expressions.dll", + "System.Linq.Parallel.dll", + "System.Linq.Queryable.dll", + "System.Memory.dll", + "System.Net.AuthenticationManager.dll", + "System.Net.Cache.dll", + "System.Net.dll", + "System.Net.Http.dll", + "System.Net.Http.WinHttpHandler.dll", + "System.Net.HttpListener.dll", + "System.Net.Mail.dll", + "System.Net.NameResolution.dll", + "System.Net.NetworkInformation.dll", + "System.Net.Ping.dll", + "System.Net.Primitives.dll", + "System.Net.Requests.dll", + "System.Net.Security.dll", + "System.Net.ServicePoint.dll", + "System.Net.Sockets.dll", + "System.Net.Utilities.dll", + "System.Net.WebHeaderCollection.dll", + "System.Net.WebSockets.Client.dll", + "System.Net.WebSockets.dll", + "System.Numerics.dll", + "System.Numerics.Vectors.dll", + "System.ObjectModel.dll", + "System.Reflection.Context.dll", + "System.Reflection.DispatchProxy.dll", + "System.Reflection.dll", + "System.Reflection.Emit.dll", + "System.Reflection.Emit.ILGeneration.dll", + "System.Reflection.Emit.Lightweight.dll", + "System.Reflection.Extensions.dll", + "System.Reflection.Primitives.dll", + "System.Reflection.TypeExtensions.dll", + "System.Resources.Reader.dll", + "System.Resources.ReaderWriter.dll", + "System.Resources.ResourceManager.dll", + "System.Resources.Writer.dll", + "System.Runtime.CompilerServices.Unsafe.dll", + "System.Runtime.CompilerServices.Unsafe.dll", + "System.Runtime.CompilerServices.VisualC.dll", + "System.Runtime.dll", + "System.Runtime.Extensions.dll", + "System.Runtime.Handles.dll", + "System.Runtime.InteropServices.dll", + "System.Runtime.InteropServices.RuntimeInformation.dll", + "System.Runtime.InteropServices.WindowsRuntime.dll", + "System.Runtime.Loader.dll", + "System.Runtime.Numerics.dll", + "System.Runtime.Serialization.dll", + "System.Runtime.Serialization.Formatters.dll", + "System.Runtime.Serialization.Json.dll", + "System.Runtime.Serialization.Primitives.dll", + "System.Runtime.Serialization.Xml.dll", + "System.Security.AccessControl.dll", + "System.Security.Claims.dll", + "System.Security.Cryptography.Algorithms.dll", + "System.Security.Cryptography.Cng.dll", + "System.Security.Cryptography.Csp.dll", + "System.Security.Cryptography.DeriveBytes.dll", + "System.Security.Cryptography.Encoding.dll", + "System.Security.Cryptography.Encryption.Aes.dll", + "System.Security.Cryptography.Encryption.dll", + "System.Security.Cryptography.Encryption.ECDiffieHellman.dll", + "System.Security.Cryptography.Encryption.ECDsa.dll", + "System.Security.Cryptography.Hashing.Algorithms.dll", + "System.Security.Cryptography.Hashing.dll", + "System.Security.Cryptography.OpenSsl.dll", + "System.Security.Cryptography.Pkcs.dll", + "System.Security.Cryptography.Primitives.dll", + "System.Security.Cryptography.ProtectedData.dll", + "System.Security.Cryptography.RandomNumberGenerator.dll", + "System.Security.Cryptography.RSA.dll", + "System.Security.Cryptography.X509Certificates.dll", + "System.Security.dll", + "System.Security.Principal.dll", + "System.Security.Principal.Windows.dll", + "System.Security.SecureString.dll", + "System.ServiceModel.dll", + "System.ServiceModel.Duplex.dll", + "System.ServiceModel.Http.dll", + "System.ServiceModel.Internals.dll", + "System.ServiceModel.NetTcp.dll", + "System.ServiceModel.Primitives.dll", + "System.ServiceModel.Security.dll", + "System.ServiceModel.Web.dll", + "System.ServiceProcess.ServiceController.dll", + "System.Text.Encoding.CodePages.dll", + "System.Text.Encoding.CodePages.dll", + "System.Text.Encoding.CodePages.dll", + "System.Text.Encoding.dll", + "System.Text.Encoding.Extensions.dll", + "System.Text.RegularExpressions.dll", + "System.Threading.AccessControl.dll", + "System.Threading.dll", + "System.Threading.Overlapped.dll", + "System.Threading.Tasks.dll", + "System.Threading.Tasks.Parallel.dll", + "System.Threading.Thread.dll", + "System.Threading.ThreadPool.dll", + "System.Threading.Timer.dll", + "System.Transactions.dll", + "System.ValueTuple.dll", + "System.Web.Services.dll", + "System.Windows.dll", + "System.Xml.dll", + "System.Xml.Linq.dll", + "System.Xml.ReaderWriter.dll", + "System.Xml.Serialization.dll", + "System.Xml.XDocument.dll", + "System.Xml.XmlDocument.dll", + "System.Xml.XmlSerializer.dll", + "System.Xml.XPath.dll", + "System.Xml.XPath.XDocument.dll", + "System.Xml.XPath.XmlDocument.dll", + "System.Xml.Xsl.Primitives.dll" + ] +} \ No newline at end of file diff --git a/build/VSIX.targets b/build/VSIX.targets index 0c6a87a6..75de1a86 100644 --- a/build/VSIX.targets +++ b/build/VSIX.targets @@ -3,13 +3,7 @@ true $(RestoreDependsOn);RestoreVSIX $(PackageDependsOn);PackageVSIX - $(GetArtifactInfoDependsOn);GetVSIXArtifactInfo - Microsoft.VisualStudio.BlazorExtension - $(BuildDir)$(VSIXName).vsix - $(BuildDir)$(VSIXName).json - $(RepositoryRoot)tooling\$(VSIXName)\$(VSIXName).csproj - $(BuildDir)$(VSIXName).pdb - shipoob + $(RepositoryRoot)tooling\Microsoft.VisualStudio.BlazorExtension\Microsoft.VisualStudio.BlazorExtension.csproj - - - - - - VsixPackage - $(PackageVersion) - $(VSIXArtifactCategory) - $(VSIXName) - - - - SymbolsFile - $(VSIXArtifactCategory) - $(VSIXName).vsix - full - - - - VsixPackageManifestFile - $(VSIXArtifactCategory) - $(VSIXName).vsix - $(VSIXName) - - - - - - - - - @@ -98,8 +60,8 @@ /v:M; /fl; "/flp:LogFile=$(VSIXLogFilePath)"; + /p:BuildProjectReferences=false; /p:DeployExtension=false; - "/p:TargetVSIXContainer=$(VSIXOutputPath)"; "/p:SymbolsPublishDir=$(BuildDir)"; "/p:Configuration=$(Configuration)";" /> diff --git a/build/arcade.props b/build/arcade.props new file mode 100644 index 00000000..0871eebb --- /dev/null +++ b/build/arcade.props @@ -0,0 +1,37 @@ + + + + + + + Debug + AnyCPU + $(RepositoryRoot)artifacts\ + $(ArtifactsDir)obj\ + $(ArtifactsDir)$(Configuration)\ + $(ArtifactsConfigurationDir)bin\ + $(ArtifactsConfigurationDir)packages\ + + + + $(MSBuildProjectName) + + $([System.IO.Path]::GetFullPath('$(ArtifactsBinDir)$(OutDirName)\')) + $(BaseOutputPath) + $(OutputPath)$(PlatformName)\ + $(OutputPath)\ + + $([System.IO.Path]::GetFullPath('$(ArtifactsObjDir)$(MSBuildProjectName)')) + $(BaseIntermediateOutputPath)\ + $(BaseIntermediateOutputPath)$(Configuration)\ + $(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\ + + + diff --git a/build/dependencies.props b/build/dependencies.props index c03b5c2d..526b8ea6 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -5,10 +5,11 @@ 2.1.0 0.10.13 - 2.1.0-rtm-15789 + 2.1.3-rtm-15811 2.2.0-preview1-34576 1.0.0 - 0.5.0-preview1-10358 + 0.6.0-preview1-20180807.1 + 2.1.0 diff --git a/build/repo.props b/build/repo.props index 35e3dd34..cda82026 100644 --- a/build/repo.props +++ b/build/repo.props @@ -1,6 +1,13 @@  + + + $(ArtifactsDir)$(Configuration)\packages\ + true + false + + true @@ -14,8 +21,8 @@ true - diff --git a/build/repo.targets b/build/repo.targets index 9577314e..d2b64c74 100644 --- a/build/repo.targets +++ b/build/repo.targets @@ -5,5 +5,11 @@ Configuration=$(Configuration)NoVSIX - + + + + + diff --git a/build/sign.proj b/build/sign.proj new file mode 100644 index 00000000..af3dcd0a --- /dev/null +++ b/build/sign.proj @@ -0,0 +1,31 @@ + + + + + + net452 + $(MSBuildThisFileDirectory)..\artifacts\obj\tools\ + 1.0.0-beta2-63206-01 + + $(RestorePackagesPath)roslyntools.signtool\$(SignToolVersion)\tools\SignTool.exe + + -msbuildPath "$(VisualStudioMSBuildx86Path)" + $(SignToolOptions) -test + $(SignToolOptions) -testSign + $(SignToolOptions) -nugetPackagesPath $(RestorePackagesPath) + $(SignToolOptions) -config "$(MSBuildThisFileDirectory)SignToolData.json" + $(SignToolOptions) $(ArtifactsConfigurationDir) + + + + + + + + + + + + diff --git a/build/sources.props b/build/sources.props index e4f91c62..7af557c8 100644 --- a/build/sources.props +++ b/build/sources.props @@ -7,7 +7,8 @@ $(RestoreSources); https://dotnet.myget.org/F/dotnet-core/api/v3/index.json; https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json; - https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json + https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json; + https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json $(RestoreSources); diff --git a/global.json b/global.json index 73930e26..3e98304e 100644 --- a/global.json +++ b/global.json @@ -1,5 +1,5 @@ { "sdk": { "version": "2.1.302" }, "msbuild-sdks": { -"Microsoft.DotNet.GlobalTools.Sdk": "2.1.3-rtm-15810"} +"Microsoft.DotNet.GlobalTools.Sdk": "2.1.3-rtm-15811"} } diff --git a/korebuild-lock.txt b/korebuild-lock.txt index d8596786..07356838 100644 --- a/korebuild-lock.txt +++ b/korebuild-lock.txt @@ -1,2 +1,2 @@ -version:2.1.3-rtm-15810 -commithash:e00cd3bbf2d68556e422c31cb053dec316e0ab12 +version:2.1.3-rtm-15811 +commithash:640972bd30677321840c88105030d5f97e13738f diff --git a/samples/Directory.Build.props b/samples/Directory.Build.props new file mode 100644 index 00000000..d0da6a5d --- /dev/null +++ b/samples/Directory.Build.props @@ -0,0 +1,7 @@ + + + + true + + + diff --git a/src/Microsoft.AspNetCore.Blazor.Build/.gitignore b/src/Microsoft.AspNetCore.Blazor.Build/.gitignore deleted file mode 100644 index b4a53f7b..00000000 --- a/src/Microsoft.AspNetCore.Blazor.Build/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/tools/ diff --git a/src/Microsoft.AspNetCore.Blazor.Build/Microsoft.AspNetCore.Blazor.Build.csproj b/src/Microsoft.AspNetCore.Blazor.Build/Microsoft.AspNetCore.Blazor.Build.csproj index 29596e9a..1896761f 100644 --- a/src/Microsoft.AspNetCore.Blazor.Build/Microsoft.AspNetCore.Blazor.Build.csproj +++ b/src/Microsoft.AspNetCore.Blazor.Build/Microsoft.AspNetCore.Blazor.Build.csproj @@ -3,7 +3,6 @@ netcoreapp2.1 Exe - tools true @@ -11,7 +10,7 @@ true Microsoft.AspNetCore.Blazor.Build.nuspec - $(MSBuildProjectDirectory)/bin/$(Configuration)/publish/ + $(OutputPath)publish\ $(IntermediatePackDir)$(TargetFramework)/ @@ -30,13 +29,9 @@ - - - - - + PreserveNewest false diff --git a/src/Microsoft.AspNetCore.Blazor.Build/ReferenceFromSource.props b/src/Microsoft.AspNetCore.Blazor.Build/ReferenceFromSource.props index 30f69c8c..b0a6cdcf 100644 --- a/src/Microsoft.AspNetCore.Blazor.Build/ReferenceFromSource.props +++ b/src/Microsoft.AspNetCore.Blazor.Build/ReferenceFromSource.props @@ -5,7 +5,7 @@ ... except it's much more convenient when working in this repo, because it consumes the Blazor.Build targets/exe directly without needing this project to be packed into a .nupkg. - + This is only intended for use by other projects in this repo. --> @@ -29,13 +29,13 @@ - - + diff --git a/src/Microsoft.AspNetCore.Blazor.Build/targets/All.targets b/src/Microsoft.AspNetCore.Blazor.Build/targets/All.targets index 139e65f9..c68a3526 100644 --- a/src/Microsoft.AspNetCore.Blazor.Build/targets/All.targets +++ b/src/Microsoft.AspNetCore.Blazor.Build/targets/All.targets @@ -6,7 +6,8 @@ - dotnet "$(MSBuildThisFileDirectory)../tools/Microsoft.AspNetCore.Blazor.Build.dll" + $(MSBuildThisFileDirectory)../tools/ + dotnet "$(BlazorToolsDir)Microsoft.AspNetCore.Blazor.Build.dll" true @@ -15,7 +16,7 @@ - + $(AssemblyName).blazor.config diff --git a/src/Microsoft.AspNetCore.Blazor.Build/targets/Blazor.MonoRuntime.targets b/src/Microsoft.AspNetCore.Blazor.Build/targets/Blazor.MonoRuntime.targets index 671931d8..3fec481c 100644 --- a/src/Microsoft.AspNetCore.Blazor.Build/targets/Blazor.MonoRuntime.targets +++ b/src/Microsoft.AspNetCore.Blazor.Build/targets/Blazor.MonoRuntime.targets @@ -185,7 +185,8 @@ - $(ProjectDir)$(IntermediateOutputPath)$(BaseBlazorIntermediateOutputPath) + $(IntermediateOutputPath)$(BaseBlazorIntermediateOutputPath) + $([MSBuild]::Escape($([System.IO.Path]::GetFullPath('$([System.IO.Path]::Combine('$(MSBuildProjectDirectory)', '$(BlazorIntermediateOutputPath)'))')))) diff --git a/src/Microsoft.AspNetCore.Blazor.Build/targets/Publish.targets b/src/Microsoft.AspNetCore.Blazor.Build/targets/Publish.targets index 7061215e..8a250627 100644 --- a/src/Microsoft.AspNetCore.Blazor.Build/targets/Publish.targets +++ b/src/Microsoft.AspNetCore.Blazor.Build/targets/Publish.targets @@ -24,11 +24,11 @@ $(BlazorPublishDistDir)$([System.String]::new(%(TargetPath)).Substring(8)) - + <_BlazorGCTPDIDistFiles Include="@(BlazorItemOutput->'%(TargetOutputPath)')" /> <_BlazorGCTPDI Include="@(_BlazorGCTPDIDistFiles)"> - $(BlazorPublishDistDir)$([MSBuild]::MakeRelative('$(ProjectDir)$(OutDir)dist\', %(Identity))) + $(BlazorPublishDistDir)$([MSBuild]::MakeRelative('$(OutDir)dist\', %(Identity))) @@ -55,7 +55,7 @@ Condition="!Exists('$(PublishDir)web.config')" File="$(PublishDir)web.config" Lines="@(_StandaloneWebConfigContent->Replace('[ServeSubdirectory]','$(BlazorPublishDistDir)'))" /> - + diff --git a/src/Microsoft.AspNetCore.Blazor.Build/targets/RazorCompilation.targets b/src/Microsoft.AspNetCore.Blazor.Build/targets/RazorCompilation.targets index fa40d6c8..bd514319 100644 --- a/src/Microsoft.AspNetCore.Blazor.Build/targets/RazorCompilation.targets +++ b/src/Microsoft.AspNetCore.Blazor.Build/targets/RazorCompilation.targets @@ -8,15 +8,15 @@ - <_AngleSharpAssemblyPath>$(MSBuildThisFileDirectory)../tools/AngleSharp.dll - <_BlazorExtensionAssemblyPath>$(MSBuildThisFileDirectory)../tools/Microsoft.AspNetCore.Blazor.Razor.Extensions.dll + <_AngleSharpAssemblyPath>$(BlazorToolsDir)AngleSharp.dll + <_BlazorExtensionAssemblyPath>$(BlazorToolsDir)Microsoft.AspNetCore.Blazor.Razor.Extensions.dll false Experimental - @@ -24,7 +24,7 @@ Blazor-$(BlazorLanguageVersion) BlazorDeclaration-$(BlazorLanguageVersion) $(BlazorDefinitionConfiguration) - + @@ -37,7 +37,7 @@ - + Blazor-$(BlazorLanguageVersion);Blazor.AngleSharp-$(BlazorLanguageVersion);$(CustomRazorExtension) @@ -81,7 +81,7 @@ - @@ -104,7 +104,7 @@ This step also assigns each item an output path for both stages of code generation. --> - + @@ -118,9 +118,9 @@ - @@ -204,7 +204,7 @@ - - - - + diff --git a/src/Microsoft.AspNetCore.Blazor.Templates/content/Directory.Build.targets b/src/Microsoft.AspNetCore.Blazor.Templates/content/Directory.Build.targets new file mode 100644 index 00000000..1cbf2e1f --- /dev/null +++ b/src/Microsoft.AspNetCore.Blazor.Templates/content/Directory.Build.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/test/testapps/Directory.Build.props b/test/testapps/Directory.Build.props new file mode 100644 index 00000000..7e3b3789 --- /dev/null +++ b/test/testapps/Directory.Build.props @@ -0,0 +1,7 @@ + + + + true + + + diff --git a/tooling/Microsoft.VisualStudio.BlazorExtension/Microsoft.VisualStudio.BlazorExtension.csproj b/tooling/Microsoft.VisualStudio.BlazorExtension/Microsoft.VisualStudio.BlazorExtension.csproj index 69a362e0..c5a2e35a 100644 --- a/tooling/Microsoft.VisualStudio.BlazorExtension/Microsoft.VisualStudio.BlazorExtension.csproj +++ b/tooling/Microsoft.VisualStudio.BlazorExtension/Microsoft.VisualStudio.BlazorExtension.csproj @@ -1,4 +1,4 @@ - + 15.0 @@ -7,7 +7,9 @@ false false + $(MSBuildThisFileDirectory)..\..\ + - + AngleSharp.dll true PreserveNewest @@ -204,8 +206,6 @@ --> - Debug - AnyCPU 2.0 {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} {9088E4E4-B855-457F-AE9E-D86709A5E1F4} @@ -220,7 +220,6 @@ true full false - bin\Debug\ DEBUG;TRACE prompt 4 @@ -228,7 +227,6 @@ pdbonly true - bin\Release\ TRACE prompt 4