diff --git a/Source/Directory.Build.targets b/Source/Directory.Build.targets index 8083c21..ec50f5d 100644 --- a/Source/Directory.Build.targets +++ b/Source/Directory.Build.targets @@ -13,7 +13,7 @@ - + diff --git a/Source/MSBuild.Sdk.Extras/Build/LanguageTargets/CheckMissing.targets b/Source/MSBuild.Sdk.Extras/Build/LanguageTargets/CheckMissing.targets index 92bc34f..bf60bb2 100644 --- a/Source/MSBuild.Sdk.Extras/Build/LanguageTargets/CheckMissing.targets +++ b/Source/MSBuild.Sdk.Extras/Build/LanguageTargets/CheckMissing.targets @@ -11,6 +11,13 @@ <_SdkLanguageTargetsMissing Condition="'$(_SdkLanguageTargetsMissing)' == ''">true + + + + <_SdkLanguageTargetsMissing Condition="'$(CommonTargetsPath)'!=''">false + <_SdkLanguageTargetsMissing Condition="'$(_SdkLanguageTargetsMissing)' == ''">true + + @@ -30,7 +37,7 @@ - + diff --git a/TestProjects/Linux-C#/Directory.Build.props b/TestProjects/Linux-C#/Directory.Build.props new file mode 100644 index 0000000..1b460d8 --- /dev/null +++ b/TestProjects/Linux-C#/Directory.Build.props @@ -0,0 +1,9 @@ + + + + $(MSBuildThisFileDirectory) + + + + + \ No newline at end of file diff --git a/TestProjects/Linux-C#/Linux-CS.sln b/TestProjects/Linux-C#/Linux-CS.sln new file mode 100644 index 0000000..d18afbf --- /dev/null +++ b/TestProjects/Linux-C#/Linux-CS.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29230.61 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "netstd2Library", "netstd2Library\netstd2Library.csproj", "{ED027E36-643F-44C0-A297-34D565859D16}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cross-ios-netstd2", "cross-ios-netstd2\cross-ios-netstd2.csproj", "{C87855F6-314C-4BA6-AFA9-F979D8850050}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {ED027E36-643F-44C0-A297-34D565859D16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ED027E36-643F-44C0-A297-34D565859D16}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ED027E36-643F-44C0-A297-34D565859D16}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ED027E36-643F-44C0-A297-34D565859D16}.Release|Any CPU.Build.0 = Release|Any CPU + {C87855F6-314C-4BA6-AFA9-F979D8850050}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C87855F6-314C-4BA6-AFA9-F979D8850050}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C87855F6-314C-4BA6-AFA9-F979D8850050}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C87855F6-314C-4BA6-AFA9-F979D8850050}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {59FA0C61-E338-40D3-BBB4-966BC1CDB464} + EndGlobalSection +EndGlobal diff --git a/TestProjects/Linux-C#/Linux-CS/Linux-CS.sln b/TestProjects/Linux-C#/Linux-CS/Linux-CS.sln new file mode 100644 index 0000000..d18afbf --- /dev/null +++ b/TestProjects/Linux-C#/Linux-CS/Linux-CS.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29230.61 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "netstd2Library", "netstd2Library\netstd2Library.csproj", "{ED027E36-643F-44C0-A297-34D565859D16}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cross-ios-netstd2", "cross-ios-netstd2\cross-ios-netstd2.csproj", "{C87855F6-314C-4BA6-AFA9-F979D8850050}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {ED027E36-643F-44C0-A297-34D565859D16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ED027E36-643F-44C0-A297-34D565859D16}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ED027E36-643F-44C0-A297-34D565859D16}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ED027E36-643F-44C0-A297-34D565859D16}.Release|Any CPU.Build.0 = Release|Any CPU + {C87855F6-314C-4BA6-AFA9-F979D8850050}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C87855F6-314C-4BA6-AFA9-F979D8850050}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C87855F6-314C-4BA6-AFA9-F979D8850050}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C87855F6-314C-4BA6-AFA9-F979D8850050}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {59FA0C61-E338-40D3-BBB4-966BC1CDB464} + EndGlobalSection +EndGlobal diff --git a/TestProjects/Linux-C#/Linux-CS/cross-ios-netstd2/Class1.cs b/TestProjects/Linux-C#/Linux-CS/cross-ios-netstd2/Class1.cs new file mode 100644 index 0000000..39fd8de --- /dev/null +++ b/TestProjects/Linux-C#/Linux-CS/cross-ios-netstd2/Class1.cs @@ -0,0 +1,8 @@ +using System; + +namespace cross_ios_netstd2 +{ + public class Class1 + { + } +} diff --git a/TestProjects/Linux-C#/Linux-CS/cross-ios-netstd2/cross-ios-netstd2.csproj b/TestProjects/Linux-C#/Linux-CS/cross-ios-netstd2/cross-ios-netstd2.csproj new file mode 100644 index 0000000..3ba0986 --- /dev/null +++ b/TestProjects/Linux-C#/Linux-CS/cross-ios-netstd2/cross-ios-netstd2.csproj @@ -0,0 +1,8 @@ + + + + netstandard2.0;xamarinios10 + cross_ios_netstd2 + + + diff --git a/TestProjects/Linux-C#/Linux-CS/netstd2Library/Class1.cs b/TestProjects/Linux-C#/Linux-CS/netstd2Library/Class1.cs new file mode 100644 index 0000000..d146db9 --- /dev/null +++ b/TestProjects/Linux-C#/Linux-CS/netstd2Library/Class1.cs @@ -0,0 +1,8 @@ +using System; + +namespace netstd2Library +{ + public class Class1 + { + } +} diff --git a/TestProjects/Linux-C#/Linux-CS/netstd2Library/netstd2Library.csproj b/TestProjects/Linux-C#/Linux-CS/netstd2Library/netstd2Library.csproj new file mode 100644 index 0000000..9f5c4f4 --- /dev/null +++ b/TestProjects/Linux-C#/Linux-CS/netstd2Library/netstd2Library.csproj @@ -0,0 +1,7 @@ + + + + netstandard2.0 + + + diff --git a/TestProjects/Linux-C#/cross-ios-netstd2/Class1.cs b/TestProjects/Linux-C#/cross-ios-netstd2/Class1.cs new file mode 100644 index 0000000..39fd8de --- /dev/null +++ b/TestProjects/Linux-C#/cross-ios-netstd2/Class1.cs @@ -0,0 +1,8 @@ +using System; + +namespace cross_ios_netstd2 +{ + public class Class1 + { + } +} diff --git a/TestProjects/Linux-C#/cross-ios-netstd2/cross-ios-netstd2.csproj b/TestProjects/Linux-C#/cross-ios-netstd2/cross-ios-netstd2.csproj new file mode 100644 index 0000000..2bd2016 --- /dev/null +++ b/TestProjects/Linux-C#/cross-ios-netstd2/cross-ios-netstd2.csproj @@ -0,0 +1,7 @@ + + + + netstandard2.0;xamarinios10;uap10.0.16299 + + + diff --git a/TestProjects/Linux-C#/netstd2Library/Class1.cs b/TestProjects/Linux-C#/netstd2Library/Class1.cs new file mode 100644 index 0000000..d146db9 --- /dev/null +++ b/TestProjects/Linux-C#/netstd2Library/Class1.cs @@ -0,0 +1,8 @@ +using System; + +namespace netstd2Library +{ + public class Class1 + { + } +} diff --git a/TestProjects/Linux-C#/netstd2Library/netstd2Library.csproj b/TestProjects/Linux-C#/netstd2Library/netstd2Library.csproj new file mode 100644 index 0000000..7816d54 --- /dev/null +++ b/TestProjects/Linux-C#/netstd2Library/netstd2Library.csproj @@ -0,0 +1,11 @@ + + + + netstandard2.0 + + + + + + + diff --git a/TestProjects/NuGet.config b/TestProjects/NuGet.config index ff2260c..45c8afb 100644 --- a/TestProjects/NuGet.config +++ b/TestProjects/NuGet.config @@ -1,6 +1,6 @@ - + - - + + \ No newline at end of file diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0f20799..5538155 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,54 +1,176 @@ trigger: - - master - - rel/* +- master +- rel/* pr: - - master - - rel/* - -pool: - vmImage: windows-2019 - -variables: - BuildConfiguration: Release - -steps: -- task: DotNetCoreCLI@2 - inputs: - command: custom - custom: tool - arguments: install --tool-path . nbgv - displayName: Install NBGV tool - -- script: nbgv cloud - displayName: Set Version - -- powershell: | - mkdir $Env:Temp\Packages -Force - displayName: Build - -- task: DotNetCoreCLI@2 - inputs: - command: pack - packagesToPack: Source/MSBuild.Sdk.Extras/MSBuild.Sdk.Extras.csproj - configuration: $(BuildConfiguration) - packDirectory: $(Build.ArtifactStagingDirectory)\Packages - verbosityPack: Minimal - displayName: Build Package - -- task: PowerShell@2 - displayName: Authenticode Sign artifacts - inputs: - filePath: Tools\Sign-Package.ps1 - env: - SignClientUser: $(SignClientUser) - SignClientSecret: $(SignClientSecret) - ArtifactDirectory: $(Build.ArtifactStagingDirectory)\Packages - condition: and(succeeded(), not(eq(variables['build.reason'], 'PullRequest')), not(eq(variables['SignClientSecret'], '')), not(eq(variables['SignClientUser'], ''))) - -- task: PublishBuildArtifacts@1 - displayName: Publish Artifacts - inputs: - pathToPublish: $(Build.ArtifactStagingDirectory)\Packages - artifactType: container - artifactName: Package +- master +- rel/* + +jobs: +- job: Windows + pool: + vmImage: windows-2019 + + variables: + BuildConfiguration: Release + + steps: + - task: DotNetCoreCLI@2 + inputs: + command: custom + custom: tool + arguments: install --tool-path . nbgv + displayName: Install NBGV tool + + - script: nbgv cloud + displayName: Set Version + + - powershell: | + mkdir $Env:Temp\Packages -Force + displayName: Create packages temp folder + + - task: DotNetCoreCLI@2 + inputs: + command: pack + packagesToPack: Source/MSBuild.Sdk.Extras/MSBuild.Sdk.Extras.csproj + configuration: $(BuildConfiguration) + packDirectory: $(Build.ArtifactStagingDirectory)\Packages + verbosityPack: Minimal + displayName: Build Package + + - task: PowerShell@2 + displayName: Authenticode Sign artifacts + inputs: + filePath: Tools\Sign-Package.ps1 + env: + SignClientUser: $(SignClientUser) + SignClientSecret: $(SignClientSecret) + ArtifactDirectory: $(Build.ArtifactStagingDirectory)\Packages + condition: and(succeeded(), not(eq(variables['build.reason'], 'PullRequest')), not(eq(variables['SignClientSecret'], '')), not(eq(variables['SignClientUser'], ''))) + + - task: PublishBuildArtifacts@1 + displayName: Publish Artifacts + inputs: + pathToPublish: $(Build.ArtifactStagingDirectory)\Packages + artifactType: container + artifactName: Package + +- job: Windows_Tests + pool: + vmImage: windows-2019 + + variables: + BuildConfiguration: Release + TMPDIR: $(Build.ArtifactStagingDirectory) + DisableNerdBank: true + PackageVersion: 42.42.42 + + steps: + - powershell: | + mkdir $(Build.ArtifactStagingDirectory)\Packages -Force + displayName: Create packages temp folder + + - task: DotNetCoreCLI@2 + inputs: + command: pack + packagesToPack: Source/MSBuild.Sdk.Extras/MSBuild.Sdk.Extras.csproj + configuration: $(BuildConfiguration) + packDirectory: $(Build.ArtifactStagingDirectory)\Packages + verbosityPack: Minimal + displayName: Build Package + + - task: MSBuild@1 + inputs: + solution: '$(build.sourcesdirectory)\TestProjects\Windows-Desktop-C#\Windows-Desktop.sln' + msbuildArguments: /r /p:SignManifests=false + configution: $(BuildConfiguration) + displayName: MSBuild Test Projects 1 + + - task: MSBuild@1 + inputs: + solution: '$(build.sourcesdirectory)\TestProjects\Linux-C#\netstd2Library\netstd2Library.csproj' + msbuildArguments: /r + configution: $(BuildConfiguration) + displayName: MSBuild Test Projects 2 + +- job: Linux + container: nventive/wasm-build:1.4.1 + pool: + vmImage: 'ubuntu-16.04' + + variables: + BuildConfiguration: Release + TMPDIR: /tmp + DisableNerdBank: true + PackageVersion: 42.42.42 + + steps: + - script: | + mkdir $TMPDIR/Packages + displayName: Create packages temp folder + + - task: DotNetCoreCLI@2 + inputs: + command: pack + packagesToPack: Source/MSBuild.Sdk.Extras/MSBuild.Sdk.Extras.csproj + configuration: $(BuildConfiguration) + packDirectory: $(TMPDIR)/Packages + verbosityPack: Minimal + displayName: Build Package + + - bash: | + dotnet build --configuration Release $(build.sourcesdirectory)/TestProjects/Linux-C#/netstd2Library/netstd2Library.csproj + + displayName: '.NET Core: .NET Std Library with unavailable platform test' + + - bash: | + msbuild /r /p:Configuration=Release $(build.sourcesdirectory)/TestProjects/Linux-C#/netstd2Library/netstd2Library.csproj + + displayName: 'MSBuild: .NET Std Library with unavailable platform test' + + +- job: macOS + + strategy: + matrix: + Xamarin_5_16_0: + XamarinVersion: 5_16_0 + Xamarin_5_12_0: + XamarinVersion: 5_12_0 + + pool: + vmImage: 'macOS-10.13' + + variables: + BuildConfiguration: Release + TMPDIR: /tmp + DisableNerdBank: true + PackageVersion: 42.42.42 + + steps: + + - bash: /bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh $(XamarinVersion)" + displayName: Select Xamarin Version + + - script: | + mkdir $TMPDIR/Packages + displayName: Create packages temp folder + + - task: DotNetCoreCLI@2 + inputs: + command: pack + packagesToPack: Source/MSBuild.Sdk.Extras/MSBuild.Sdk.Extras.csproj + configuration: $(BuildConfiguration) + packDirectory: $(TMPDIR)/Packages + verbosityPack: Minimal + displayName: Build Package + + - bash: | + dotnet build --configuration Release $(build.sourcesdirectory)/TestProjects/Linux-C#/netstd2Library/netstd2Library.csproj + + displayName: '.NET Core: .NET Std Library with unavailable platform test' + + - bash: | + msbuild /r /p:Configuration=Release $(build.sourcesdirectory)/TestProjects/Linux-C#/netstd2Library/netstd2Library.csproj + + displayName: 'MSBuild: .NET Std Library with unavailable platform test' \ No newline at end of file