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