Merge remote-tracking branch 'upstream/dev/release/2.0.0'

This commit is contained in:
Eric Erhardt 2017-10-09 14:09:17 -05:00
Родитель d7df7e59ad b455822f06
Коммит 3119d09f2b
45 изменённых файлов: 854 добавлений и 420 удалений

Просмотреть файл

@ -1 +1 @@
2.0.0-preview1-005899
2.0.0-preview1-005977

Просмотреть файл

@ -12,6 +12,7 @@
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'==''">$(ObjDir)</BaseIntermediateOutputPath>
<!-- Input Directories -->
<PackagesDir>$(DotNetRestorePackagesPath)</PackagesDir>
<PackagesDir Condition="'$(PackagesDir)'==''">$(RepoRoot)packages/</PackagesDir>
<ToolRuntimePath Condition="'$(ToolRuntimePath)'==''">$(RepoRoot)Tools/</ToolRuntimePath>
<LocalToolRuntimePath Condition="'$(LocalToolRuntimePath)' == ''">$(ToolRuntimePath)local/</LocalToolRuntimePath>
@ -27,4 +28,8 @@
<PackagingTaskDir Condition="'$(BuildToolsTaskDir)' != ''">$(BuildToolsTaskDir)</PackagingTaskDir>
<DotnetCliPath Condition="'$(DotnetCliPath)'==''">$(ToolsDir)dotnetcli/</DotnetCliPath>
</PropertyGroup>
<PropertyGroup>
<HostMachineInfoProps>$(BaseIntermediateOutputPath)HostMachineInfo.props</HostMachineInfoProps>
</PropertyGroup>
</Project>

Просмотреть файл

@ -16,6 +16,7 @@
<TraversalBuildDependencies>
CreateOrUpdateCurrentVersionFile;
CreateVersionInfoFile;
CreateHostMachineInfoFile;
BatchRestorePackages;
BuildCustomTasks;
</TraversalBuildDependencies>
@ -34,6 +35,26 @@
<Target Name="BuildTraversalBuildDependencies"
DependsOnTargets="$(TraversalBuildDependencies)" />
<Target Name="CreateHostMachineInfoFile">
<GetTargetMachineInfo>
<Output PropertyName="HostMachineRid" TaskParameter="RuntimeIdentifier" />
</GetTargetMachineInfo>
<PropertyGroup>
<HostMachineInfoPropsContent>
&lt;Project&gt;
&lt;PropertyGroup&gt;
&lt;HostMachineRid&gt;$(HostMachineRid)&lt;/HostMachineRid&gt;
&lt;/PropertyGroup&gt;
&lt;/Project&gt;
</HostMachineInfoPropsContent>
</PropertyGroup>
<WriteLinesToFile File="$(HostMachineInfoProps)"
Lines="$(HostMachineInfoPropsContent)"
Overwrite="True" />
</Target>
<Target Name="BatchRestorePackages" Condition="'$(RestoreDuringBuild)'=='true'">
<Message Importance="High" Text="Restoring all packages..." />
<Exec Condition="'@(SdkRestoreProjects)' != ''" Command="$(DotnetRestoreCommand) &quot;%(SdkRestoreProjects.FullPath)&quot; $(MSBuildPassThroughPropertyList)" StandardOutputImportance="Low" />

Просмотреть файл

@ -123,7 +123,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(PB_CrossBuildArgs)$(DockerCommonRunArgs) $(PB_GitDirectory)/build.sh -OfficialBuildId=$(OfficialBuildId) $(PB_BuildArguments)",
"arguments": "run --rm $(PB_CrossBuildArgs)$(DockerCommonRunArgs) $(PB_GitDirectory)/build.sh -OfficialBuildId=$(OfficialBuildId) $(PB_BuildArguments) -- $(PB_AdditionalMSBuildArguments)",
"workingFolder": "$(PB_SourcesDirectory)",
"failOnStandardError": "false"
}
@ -141,7 +141,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --privileged --rm $(DockerCommonRunArgs) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:AzureAccountName=$(PB_AzureAccountName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:DistroRid=$(PB_DistroRid) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:ConfigurationGroup=$(BuildConfiguration) /p:PortableBuild=$(PB_PortableBuild) /p:OSGroup=Linux /p:DebRepoUser=$(PB_DebRepoUser) /p:DebRepoServer=$(PB_DebRepoServer) /p:DebRepoPass=$(DEB_REPO_PASSWORD) /p:DebianId_ubuntu1404-x64=$(PB_DebianId_ubuntu1404-x64) /p:DebianId_debian8-x64=$(PB_DebianId_debian8-x64) /p:DebianId_ubuntu1604-x64=$(PB_DebianId_ubuntu1604-x64) /p:DebianId_ubuntu1610-x64=$(PB_DebianId_ubuntu1610-x64)",
"arguments": "run --privileged --rm $(DockerCommonRunArgs) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:AzureAccountName=$(PB_AzureAccountName) /p:ContainerName=$(PB_ContainerName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumContainerName=$(PB_ChecksumContainerName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:ConfigurationGroup=$(BuildConfiguration) /p:PortableBuild=$(PB_PortableBuild) /p:OSGroup=Linux /p:DebRepoUser=$(PB_DebRepoUser) /p:DebRepoServer=$(PB_DebRepoServer) /p:DebRepoPass=$(DEB_REPO_PASSWORD) /p:DebianId_ubuntu1404-x64=$(PB_DebianId_ubuntu1404-x64) /p:DebianId_debian8-x64=$(PB_DebianId_debian8-x64) /p:DebianId_ubuntu1604-x64=$(PB_DebianId_ubuntu1604-x64) /p:DebianId_ubuntu1610-x64=$(PB_DebianId_ubuntu1610-x64) $(PB_AdditionalMSBuildArguments)",
"workingFolder": "$(PB_SourcesDirectory)",
"failOnStandardError": "false"
}
@ -357,19 +357,22 @@
"PB_AzureAccountName": {
"value": "sourcebuild"
},
"PB_ContainerName": {
"value": "dotnet"
},
"PB_AzureAccessToken": {
"value": null,
"isSecret": true
},
"PB_DistroRid": {
"value": "ubuntu.14.04-arm"
},
"PB_TargetArchitecture": {
"value": "arm"
},
"PB_AdditionalBuildArguments": {
"value": ""
},
"PB_AdditionalMSBuildArguments": {
"value": ""
},
"PB_PortableBuild": {
"value": "false"
},
@ -382,6 +385,9 @@
"PB_ChecksumAzureAccountName": {
"value": "dotnetclichecksums"
},
"PB_ChecksumContainerName": {
"value": "dotnet"
},
"PB_ChecksumAzureAccessToken": {
"value": null,
"isSecret": true

Просмотреть файл

@ -141,7 +141,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --privileged --rm $(DockerCommonRunArgs) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:AzureAccountName=$(PB_AzureAccountName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:DistroRid=$(PB_DistroRid) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:ConfigurationGroup=$(BuildConfiguration) /p:PortableBuild=$(PB_PortableBuild) /p:OSGroup=Linux /p:DebRepoUser=$(PB_DebRepoUser) /p:DebRepoServer=$(PB_DebRepoServer) /p:DebRepoPass=$(DEB_REPO_PASSWORD) /p:DebianId_ubuntu1404-x64=$(PB_DebianId_ubuntu1404-x64) /p:DebianId_debian8-x64=$(PB_DebianId_debian8-x64) /p:DebianId_ubuntu1604-x64=$(PB_DebianId_ubuntu1604-x64) /p:DebianId_ubuntu1610-x64=$(PB_DebianId_ubuntu1610-x64)",
"arguments": "run --privileged --rm $(DockerCommonRunArgs) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:AzureAccountName=$(PB_AzureAccountName) /p:ContainerName=$(PB_ContainerName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumContainerName=$(PB_ChecksumContainerName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:ConfigurationGroup=$(BuildConfiguration) /p:PortableBuild=$(PB_PortableBuild) /p:OSGroup=Linux /p:DebRepoUser=$(PB_DebRepoUser) /p:DebRepoServer=$(PB_DebRepoServer) /p:DebRepoPass=$(DEB_REPO_PASSWORD) /p:DebianId_ubuntu1404-x64=$(PB_DebianId_ubuntu1404-x64) /p:DebianId_debian8-x64=$(PB_DebianId_debian8-x64) /p:DebianId_ubuntu1604-x64=$(PB_DebianId_ubuntu1604-x64) /p:DebianId_ubuntu1610-x64=$(PB_DebianId_ubuntu1610-x64)",
"workingFolder": "$(PB_SourcesDirectory)",
"failOnStandardError": "false"
}
@ -215,7 +215,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1404) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies /p:DistroRid=$(DistroRid_Ubuntu1404) $(DistroSpecificMSBuildArguments)",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1404) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies $(DistroSpecificMSBuildArguments)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -233,7 +233,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1404) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) /p:DistroRid=$(DistroRid_Ubuntu1404) $(DistroSpecificMSBuildArguments)",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1404) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) $(DistroSpecificMSBuildArguments)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -251,7 +251,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1404) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:DistroRid=$(DistroRid_Ubuntu1404) /p:PublishDebToolToFeed=true /p:CliNuGetFeedUrl=$(CLI_NUGET_FEED_URL) /p:CliNuGetApiKey=$(CLI_NUGET_API_KEY) $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1404) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:PublishDebToolToFeed=true /p:CliNuGetFeedUrl=$(CLI_NUGET_FEED_URL) /p:CliNuGetApiKey=$(CLI_NUGET_API_KEY) $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -305,7 +305,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1604) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies /p:DistroRid=$(DistroRid_Ubuntu1604) $(DistroSpecificMSBuildArguments)",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1604) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies $(DistroSpecificMSBuildArguments)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -323,7 +323,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1604) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) /p:DistroRid=$(DistroRid_Ubuntu1604) $(DistroSpecificMSBuildArguments)",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1604) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) $(DistroSpecificMSBuildArguments)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -341,7 +341,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1604) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:DistroRid=$(DistroRid_Ubuntu1604) $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1604) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -395,7 +395,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1610) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies /p:DistroRid=$(DistroRid_Ubuntu1610) $(DistroSpecificMSBuildArguments)",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1610) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies $(DistroSpecificMSBuildArguments)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -413,7 +413,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1610) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) /p:DistroRid=$(DistroRid_Ubuntu1610) $(DistroSpecificMSBuildArguments)",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1610) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) $(DistroSpecificMSBuildArguments)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -431,7 +431,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1610) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:DistroRid=$(DistroRid_Ubuntu1610) $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)",
"arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1610) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -485,7 +485,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Debian8) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies /p:DistroRid=$(DistroRid_Debian8) $(DistroSpecificMSBuildArguments)",
"arguments": "run --rm $(DockerCommonRunArgs_Debian8) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies $(DistroSpecificMSBuildArguments)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -503,7 +503,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Debian8) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) /p:DistroRid=$(DistroRid_Debian8) $(DistroSpecificMSBuildArguments)",
"arguments": "run --rm $(DockerCommonRunArgs_Debian8) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) $(DistroSpecificMSBuildArguments)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -521,7 +521,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Debian8) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:DistroRid=$(DistroRid_Debian8) $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)",
"arguments": "run --rm $(DockerCommonRunArgs_Debian8) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -575,7 +575,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Debian9) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies /p:DistroRid=$(DistroRid_Debian9) $(DistroSpecificMSBuildArguments)",
"arguments": "run --rm $(DockerCommonRunArgs_Debian9) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies $(DistroSpecificMSBuildArguments)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -593,7 +593,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Debian9) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) /p:DistroRid=$(DistroRid_Debian9) $(DistroSpecificMSBuildArguments)",
"arguments": "run --rm $(DockerCommonRunArgs_Debian9) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) $(DistroSpecificMSBuildArguments)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -611,7 +611,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Debian9) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:DistroRid=$(DistroRid_Debian9) $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)",
"arguments": "run --rm $(DockerCommonRunArgs_Debian9) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -665,7 +665,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Rhel7) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies /p:DistroRid=$(DistroRid_Rhel7) $(DistroSpecificMSBuildArguments)",
"arguments": "run --rm $(DockerCommonRunArgs_Rhel7) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies $(DistroSpecificMSBuildArguments)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -683,7 +683,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Rhel7) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) /p:DistroRid=$(DistroRid_Rhel7) $(DistroSpecificMSBuildArguments)",
"arguments": "run --rm $(DockerCommonRunArgs_Rhel7) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) $(DistroSpecificMSBuildArguments)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -701,7 +701,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run --rm $(DockerCommonRunArgs_Rhel7) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:DistroRid=$(DistroRid_Rhel7) $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)",
"arguments": "run --rm $(DockerCommonRunArgs_Rhel7) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -854,6 +854,9 @@
"PB_ChecksumAzureAccountName": {
"value": "dotnetclichecksums"
},
"PB_ChecksumContainerName": {
"value": "dotnet"
},
"PB_ChecksumAzureAccessToken": {
"value": null,
"isSecret": true
@ -928,13 +931,13 @@
"PB_AzureAccountName": {
"value": "sourcebuild"
},
"PB_ContainerName": {
"value": "dotnet"
},
"PB_AzureAccessToken": {
"value": null,
"isSecret": true
},
"PB_DistroRid": {
"value": "ubuntu.14.04-$(PB_TargetArchitecture)"
},
"PB_TargetArchitecture": {
"value": "x64"
},
@ -957,7 +960,7 @@
"value": "/flp:v=diag /p:TargetArchitecture=$(PB_TargetArchitecture) /p:PortableBuild=false /p:ConfigurationGroup=$(BuildConfiguration) /p:OSGroup=Linux /p:OfficialBuildId=$(OfficialBuildId)"
},
"DistroSpecificMSBuildPublishArgs": {
"value": "/p:AzureAccountName=$(PB_AzureAccountName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:DebRepoUser=$(PB_DebRepoUser) /p:DebRepoServer=$(PB_DebRepoServer) /p:DebRepoPass=$(DEB_REPO_PASSWORD) $(PB_DebianKeys)"
"value": "/p:AzureAccountName=$(PB_AzureAccountName) /p:ContainerName=$(PB_ContainerName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumContainerName=$(PB_ChecksumContainerName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:DebRepoUser=$(PB_DebRepoUser) /p:DebRepoServer=$(PB_DebRepoServer) /p:DebRepoPass=$(DEB_REPO_PASSWORD) $(PB_DebianKeys)"
},
"PB_DebianKeys": {
"value": "/p:DebianId_ubuntu1404-x64=$(PB_DebianId_ubuntu1404-x64) /p:DebianId_debian8-x64=$(PB_DebianId_debian8-x64) /p:DebianId_debian9-x64=$(PB_DebianId_debian9-x64) /p:DebianId_ubuntu1604-x64=$(PB_DebianId_ubuntu1604-x64) /p:DebianId_ubuntu1610-x64=$(PB_DebianId_ubuntu1610-x64)"
@ -965,9 +968,6 @@
"DockerTag_Ubuntu1404": {
"value": "ubuntu-14.04-debpkg-e5cf912-20175003025046"
},
"DistroRid_Ubuntu1404": {
"value": "ubuntu.14.04-x64"
},
"DockerImageName_Ubuntu1404": {
"value": "$(PB_DockerRepository):$(DockerTag_Ubuntu1404)"
},
@ -977,9 +977,6 @@
"DockerTag_Ubuntu1604": {
"value": "ubuntu-16.04-debpkg-e5cf912-20174703024721"
},
"DistroRid_Ubuntu1604": {
"value": "ubuntu.16.04-$(PB_TargetArchitecture)"
},
"DockerImageName_Ubuntu1604": {
"value": "$(PB_DockerRepository):$(DockerTag_Ubuntu1604)"
},
@ -989,9 +986,6 @@
"DockerTag_Ubuntu1610": {
"value": "ubuntu-16.10-debpkg-ec863bb-20170003030028"
},
"DistroRid_Ubuntu1610": {
"value": "ubuntu.16.10-$(PB_TargetArchitecture)"
},
"DockerImageName_Ubuntu1610": {
"value": "$(PB_DockerRepository):$(DockerTag_Ubuntu1610)"
},
@ -1001,9 +995,6 @@
"DockerTag_Debian8": {
"value": "debian-8.2-debpkg-9f87c3c-20173003023006"
},
"DistroRid_Debian8": {
"value": "debian.8-$(PB_TargetArchitecture)"
},
"DockerImageName_Debian8": {
"value": "$(PB_DockerRepository):$(DockerTag_Debian8)"
},
@ -1013,9 +1004,6 @@
"DockerTag_Debian9": {
"value": "debian-8.2-debpkg-9f87c3c-20173003023006"
},
"DistroRid_Debian9": {
"value": "debian.9-$(PB_TargetArchitecture)"
},
"DockerImageName_Debian9": {
"value": "$(PB_DockerRepository):$(DockerTag_Debian9)"
},
@ -1025,9 +1013,6 @@
"DockerTag_Rhel7": {
"value": "rhel-7-rpmpkg-c982313-20174116044113"
},
"DistroRid_Rhel7": {
"value": "rhel.7-$(PB_TargetArchitecture)"
},
"DockerImageName_Rhel7": {
"value": "$(PB_DockerRepository):$(DockerTag_Rhel7)"
},

Просмотреть файл

@ -85,7 +85,7 @@
},
"inputs": {
"filename": "$(PB_SourcesDirectory)/Tools/msbuild.sh",
"arguments": "$(PB_SourcesDirectory)/publish/publish.proj /p:AzureAccountName=$(PB_AzureAccountName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:ConfigurationGroup=$(BuildConfiguration) /p:PortableBuild=$(PB_PortableBuild) /p:OSGroup=OSX",
"arguments": "$(PB_SourcesDirectory)/publish/publish.proj /p:AzureAccountName=$(PB_AzureAccountName) /p:ContainerName=$(PB_ContainerName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumContainerName=$(PB_ChecksumContainerName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:ConfigurationGroup=$(BuildConfiguration) /p:PortableBuild=$(PB_PortableBuild) /p:OSGroup=OSX",
"workingFolder": "$(PB_SourcesDirectory)",
"failOnStandardError": "false"
}
@ -193,6 +193,9 @@
"PB_AzureAccountName": {
"value": "sourcebuild"
},
"PB_ContainerName": {
"value": "dotnet"
},
"PB_AzureAccessToken": {
"value": null,
"isSecret": true
@ -200,6 +203,9 @@
"PB_ChecksumAzureAccountName": {
"value": "dotnetclichecksums"
},
"PB_ChecksumContainerName": {
"value": "dotnet"
},
"PB_ChecksumAzureAccessToken": {
"value": null,
"isSecret": true

Просмотреть файл

@ -232,7 +232,7 @@
"solution": "$(PB_SourcesDirectory)\\publish\\publish.proj",
"platform": "$(PB_TargetArchitecture)",
"configuration": "$(BuildConfiguration)",
"msbuildArguments": "/p:Configuration=$(BuildConfiguration) $(PB_CommonMSBuildArgs) /p:SignType=$(PB_SignType) /p:NuGetFeedUrl=$(NUGET_FEED_URL) /p:NuGetSymbolsFeedUrl=$(NUGET_SYMBOLS_FEED_URL) /p:NuGetApiKey=$(NUGET_API_KEY) /p:AzureAccountName=$(PB_AzureAccountName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:GitHubUser=$(PB_GitHubUser) /p:GitHubEmail=$(PB_GitHubEmail) /p:GitHubAuthToken=$(GITHUB_PASSWORD) /p:VersionsRepoOwner=$(PB_VersionsRepoOwner) /p:VersionsRepo=$(PB_VersionsRepo) /p:VersionsRepoPath=build-info/dotnet/$(PB_RepoName)/$(SourceBranch) /p:Finalize=true /p:DotNetToolDir=$(DotNetToolDir) /p:EmbedIndexToolDir=$(EmbedIndexToolDir) /flp:v=detailed;LogFile=$(PB_SourcesDirectory)\\publish.log",
"msbuildArguments": "/p:Configuration=$(BuildConfiguration) $(PB_CommonMSBuildArgs) /p:SignType=$(PB_SignType) /p:NuGetFeedUrl=$(NUGET_FEED_URL) /p:NuGetSymbolsFeedUrl=$(NUGET_SYMBOLS_FEED_URL) /p:NuGetApiKey=$(NUGET_API_KEY) /p:AzureAccountName=$(PB_AzureAccountName) /p:ContainerName=$(PB_ContainerName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumContainerName=$(PB_ChecksumContainerName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:GitHubUser=$(PB_GitHubUser) /p:GitHubEmail=$(PB_GitHubEmail) /p:GitHubAuthToken=$(GITHUB_PASSWORD) /p:VersionsRepoOwner=$(PB_VersionsRepoOwner) /p:VersionsRepo=$(PB_VersionsRepo) /p:VersionsRepoPath=build-info/dotnet/$(PB_RepoName)/$(SourceBranch) /p:Finalize=true /p:DotNetToolDir=$(DotNetToolDir) /p:EmbedIndexToolDir=$(EmbedIndexToolDir) /flp:v=detailed;LogFile=$(PB_SourcesDirectory)\\publish.log",
"clean": "false",
"maximumCpuCount": "false",
"restoreNugetPackages": "false",
@ -363,9 +363,6 @@
"value": null,
"isSecret": true
},
"PB_DistroRid": {
"value": "win7-x64"
},
"NUGET_SYMBOLS_FEED_URL": {
"value": "https:%2F%2Fdotnet.myget.org/F/dotnet-core/symbols/api/v2/package"
},
@ -378,6 +375,9 @@
"PB_AzureAccountName": {
"value": "dotnetcli"
},
"PB_ContainerName": {
"value": "dotnet"
},
"PB_AzureAccessToken": {
"value": null,
"isSecret": true
@ -385,6 +385,9 @@
"PB_ChecksumAzureAccountName": {
"value": "dotnetclichecksums"
},
"PB_ChecksumContainerName": {
"value": "dotnet"
},
"PB_ChecksumAzureAccessToken": {
"value": null,
"isSecret": true
@ -400,7 +403,7 @@
"value": "HEAD"
},
"PB_CommonMSBuildArgs": {
"value": "/p:DistroRid=$(PB_DistroRid) /p:ConfigurationGroup=$(BuildConfiguration) /p:TargetArchitecture=$(PB_TargetArchitecture)"
"value": "/p:ConfigurationGroup=$(BuildConfiguration) /p:TargetArchitecture=$(PB_TargetArchitecture)"
},
"OfficialBuildId": {
"value": "$(Build.BuildNumber)"

Просмотреть файл

@ -291,7 +291,7 @@
"msbuildLocation": "",
"platform": "$(PB_TargetArchitecture)",
"configuration": "$(BuildConfiguration)",
"msbuildArguments": "$(PB_CommonMSBuildArgs) /p:AzureAccountName=$(PB_AzureAccountName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken)",
"msbuildArguments": "$(PB_CommonMSBuildArgs) /p:AzureAccountName=$(PB_AzureAccountName) /p:ContainerName=$(PB_ContainerName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumContainerName=$(PB_ChecksumContainerName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken)",
"clean": "false",
"maximumCpuCount": "false",
"restoreNugetPackages": "false",
@ -445,10 +445,6 @@
"CertificateId": {
"value": "400"
},
"PB_DistroRid": {
"value": "win-$(PB_TargetArchitecture)",
"allowOverride": true
},
"MsbuildSigningArguments": {
"value": "/p:CertificateId=$(CertificateId) /v:detailed /p:SignType=$(PB_SignType)"
},
@ -468,6 +464,9 @@
"PB_ChecksumAzureAccountName": {
"value": "dotnetclichecksums"
},
"PB_ChecksumContainerName": {
"value": "dotnet"
},
"PB_ChecksumAzureAccessToken": {
"value": null,
"isSecret": true
@ -478,6 +477,9 @@
"PB_AzureAccountName": {
"value": "sourcebuild"
},
"PB_ContainerName": {
"value": "dotnet"
},
"PB_AzureAccessToken": {
"value": null,
"isSecret": true
@ -501,7 +503,7 @@
"allowOverride": true
},
"PB_CommonMSBuildArgs": {
"value": "/p:DistroRid=$(PB_DistroRid) /p:ConfigurationGroup=$(BuildConfiguration) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:PortableBuild=$(PB_PortableBuild) /p:DisableCrossgen=true $(PB_AdditionalBuildArguments)"
"value": "/p:ConfigurationGroup=$(BuildConfiguration) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:PortableBuild=$(PB_PortableBuild) /p:DisableCrossgen=true $(PB_AdditionalBuildArguments)"
},
"PB_AdditionalBuildArguments": {
"value": ""

Просмотреть файл

@ -480,7 +480,7 @@
"msbuildLocation": "",
"platform": "$(PB_TargetArchitecture)",
"configuration": "$(BuildConfiguration)",
"msbuildArguments": "$(PB_CommonMSBuildArgs) /p:AzureAccountName=$(PB_AzureAccountName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:PublishRidAgnosticPackages=$(PB_PublishRidAgnosticPackages) /p:BuildFullPlatformManifest=$(PB_BuildFullPlatformManifest) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /flp:v=detailed;LogFile=$(PB_SourcesDirectory)\\publish.log",
"msbuildArguments": "$(PB_CommonMSBuildArgs) /p:AzureAccountName=$(PB_AzureAccountName) /p:ContainerName=$(PB_ContainerName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:PublishRidAgnosticPackages=$(PB_PublishRidAgnosticPackages) /p:BuildFullPlatformManifest=$(PB_BuildFullPlatformManifest) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) p:ChecksumContainerName=$(PB_ChecksumContainerName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /flp:v=detailed;LogFile=$(PB_SourcesDirectory)\\publish.log",
"clean": "false",
"maximumCpuCount": "false",
"restoreNugetPackages": "false",
@ -644,6 +644,9 @@
"PB_AzureAccountName": {
"value": "sourcebuild"
},
"PB_ContainerName": {
"value": "dotnet"
},
"PB_Branch": {
"value": "master",
"allowOverride": true
@ -658,6 +661,9 @@
"PB_ChecksumAzureAccountName": {
"value": "dotnetclichecksums"
},
"PB_ChecksumContainerName": {
"value": "dotnet"
},
"PB_CleanAgent": {
"value": "true"
},
@ -761,7 +767,6 @@
"clean": "false",
"checkoutSubmodules": false
},
"processParameters": {},
"quality": "definition",
"queue": {
"id": 36,

Просмотреть файл

@ -18,7 +18,6 @@
{
"Name": "Core-Setup-Linux-BT",
"Parameters": {
"PB_DistroRid": "rhel.7.2-x64",
"PB_DockerTag": "rhel7_prereqs_2",
"PB_AdditionalBuildArguments":"-PortableBuild=true -strip-symbols",
"PB_PortableBuild": "true"
@ -33,10 +32,10 @@
{
"Name": "Core-Setup-Linux-Arm-BT",
"Parameters": {
"PB_DistroRid": "rhel.6-x64",
"PB_DockerTag": "centos-6-c8c9b08-20174310104313",
"PB_TargetArchitecture": "x64",
"PB_AdditionalBuildArguments":"-TargetArchitecture=x64 -DistroRid=rhel.6-x64 -PortableBuild=false -strip-symbols",
"PB_AdditionalBuildArguments":"-TargetArchitecture=x64 -PortableBuild=false -strip-symbols",
"PB_AdditionalMSBuildArguments":"/p:OutputRid=rhel.6-x64",
"PB_PortableBuild": "false"
},
"ReportingParameters": {
@ -48,10 +47,9 @@
{
"Name": "Core-Setup-Linux-Arm-BT",
"Parameters": {
"PB_DistroRid": "ubuntu.14.04-arm",
"PB_DockerTag": "ubuntu-14.04-cross-0cd4667-20172211042239",
"PB_TargetArchitecture": "arm",
"PB_AdditionalBuildArguments":"-TargetArchitecture=arm -DistroRid=linux-arm -DisableCrossgen=true -PortableBuild=true -SkipTests=true -CrossBuild=true -strip-symbols",
"PB_AdditionalBuildArguments":"-TargetArchitecture=arm -DisableCrossgen=true -PortableBuild=true -SkipTests=true -CrossBuild=true -strip-symbols",
"PB_CrossBuildArgs": "-e ROOTFS_DIR ",
"PB_PortableBuild": "true"
},
@ -108,7 +106,6 @@
{
"Name": "Core-Setup-Windows-BT",
"Parameters": {
"PB_DistroRid": "win7-x64",
"PB_TargetArchitecture": "x64",
"PB_PortableBuild": "true",
"PB_PublishRidAgnosticPackages": "true",
@ -124,7 +121,6 @@
{
"Name": "Core-Setup-Windows-BT",
"Parameters": {
"PB_DistroRid": "win7-x86",
"PB_TargetArchitecture": "x86",
"PB_PortableBuild": "true"
},

Просмотреть файл

@ -30,12 +30,6 @@
"values": [ "True", "False"],
"defaultValue": "False"
},
"DistroRid": {
"description": "Specifies the distro rid for Unix OS.",
"valueType": "property",
"values": [],
"defaultValue": "${OSRid}-${CPUArch}"
},
"TargetArchitecture":{
"description": "Build for the specified architecture (x64, x86 (supported only on Windows), arm, or arm64, default: x64)",
"valueType": "property",
@ -270,7 +264,6 @@
"TargetArchitecture": "default",
"OSGroup": "default",
"MsBuildLogging":"default",
"DistroRid":"default",
"Project":"build.proj"
}
}

Просмотреть файл

@ -35,6 +35,16 @@
<CurrentRefXmlPath>$(MSBuildThisFileFullPath)</CurrentRefXmlPath>
</PropertyGroup>
<!-- infrastructure and test only dependencies -->
<PropertyGroup>
<MicrosoftBuildPackageVersion>15.1.1012</MicrosoftBuildPackageVersion>
<MicrosoftBuildFrameworkPackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildFrameworkPackageVersion>
<MicrosoftBuildTasksCorePackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildTasksCorePackageVersion>
<MicrosoftBuildUtilitiesCorePackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildUtilitiesCorePackageVersion>
<MicrosoftDotNetPlatformAbstractionsPackageVersion>1.1.1</MicrosoftDotNetPlatformAbstractionsPackageVersion>
</PropertyGroup>
<ItemGroup>
<RemoteDependencyBuildInfo Include="CoreFx">
<BuildInfoPath>$(BaseDotNetBuildInfo)corefx/$(DependencyBranch)</BuildInfoPath>

121
dir.props
Просмотреть файл

@ -38,10 +38,23 @@
<OsEnvironment Condition="'$(OsEnvironment)'==''">$(OS)</OsEnvironment>
</PropertyGroup>
<PropertyGroup Condition="'$(DotNetBuildOffline)' != 'true'">
<!-- list of nuget package sources passed to NuGet -->
<RestoreSources>
$(OverridePackageSource);
https://dotnet.myget.org/F/dotnet-core/api/v3/index.json;
https://dotnet.myget.org/F/cli-deps/api/v3/index.json;
https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json;
https://www.myget.org/F/nugetbuild/api/v3/index.json;
https://api.nuget.org/v3/index.json;
https://dotnet.myget.org/F/dotnet-corefxlab/api/v3/index.json;
</RestoreSources>
</PropertyGroup>
<!-- Import Build tools common props file where repo-independent properties are found -->
<Import Condition="Exists('$(ToolsDir)Build.Common.props')" Project="$(ToolsDir)Build.Common.props" />
<!-- Versioning -->
<!-- Versioning -->
<PropertyGroup>
<VersionSuffix Condition="'$(PreReleaseLabel)' != ''">$(PreReleaseLabel)-</VersionSuffix>
<VersionSuffix>$(VersionSuffix)$(BuildNumberMajor)-$(BuildNumberMinor)</VersionSuffix>
@ -60,11 +73,11 @@
<!--
By default, we are always building the nuget packages for HostPolicy, HostFXR and
Dotnet/AppHost. Thus, the "UseShipped*" properties (below) are always set to false.
However, there are scenarios when some of these components will not change (e.g. during
servicing, we may only change HostPolicy but not HostFXR and Dotnet/AppHost). In such cases,
set the appropriate "UseShipped*" property below to true so that we will use the last shipped
version of the package.
version of the package.
-->
<!-- The host/apphost package versions are only updated whenever there is a change in the components -->
@ -75,20 +88,20 @@
<UseShippedAppHostPackage>false</UseShippedAppHostPackage>
<AppHostVersion Condition="'$(UseShippedAppHostPackage)' != 'true'">$(ProductVersion)</AppHostVersion>
<AppHostVersion Condition="'$(UseShippedAppHostPackage)' == 'true'">2.0.0</AppHostVersion>
<!--
The FXR Resolver package version is only updated whenever there is a change in it.
<!--
The FXR Resolver package version is only updated whenever there is a change in it.
If there is ever a need to use a shipped version of the package, then set the property
below to true.
below to true.
-->
<UseShippedHostResolverPackage>false</UseShippedHostResolverPackage>
<HostResolverVersion Condition="'$(UseShippedHostResolverPackage)' != 'true'">$(ProductVersion)</HostResolverVersion>
<HostResolverVersion Condition="'$(UseShippedHostResolverPackage)' == 'true'">2.0.0</HostResolverVersion>
<!--
<!--
Host Policy package version is only updated whenever there is a change in it.
If there is ever a need to use a shipped version of the package, then set the property
below to true.
below to true.
-->
<UseShippedHostPolicyPackage>false</UseShippedHostPolicyPackage>
<HostPolicyVersion Condition="'$(UseShippedHostPolicyPackage)' != 'true'">$(ProductVersion)</HostPolicyVersion>
@ -98,18 +111,6 @@
<InstallersRelativePath>Runtime/$(SharedFrameworkNugetVersion)</InstallersRelativePath>
</PropertyGroup>
<!-- list of nuget package sources passed to dnu -->
<ItemGroup>
<!-- Need to escape double forward slash (%2F) or MSBuild will normalize to one slash on Unix. -->
<DotnetSourceList Include="$(OverridePackageSource)" />
<DotnetSourceList Include="https:%2F%2Fdotnet.myget.org/F/dotnet-core/api/v3/index.json" />
<DotnetSourceList Include="https:%2F%2Fdotnet.myget.org/F/cli-deps/api/v3/index.json" />
<DotnetSourceList Include="https:%2F%2Fdotnet.myget.org/F/dotnet-buildtools/api/v3/index.json" />
<DotnetSourceList Include="https:%2F%2Fwww.myget.org/F/nugetbuild/api/v3/index.json" />
<DotnetSourceList Include="https:%2F%2Fapi.nuget.org/v3/index.json" />
<DotnetSourceList Include="https:%2F%2Fdotnet.myget.org/F/dotnet-corefxlab/api/v3/index.json" />
</ItemGroup>
<!-- list of projects to perform batch restore -->
<ItemGroup>
<SdkRestoreProjects Include="$(MSBuildThisFileDirectory)src\pkg\deps\deps.csproj" />
@ -119,6 +120,8 @@
<PropertyGroup>
<DotnetRestorePrefix Condition="'$(RunningOnUnix)' == 'true'">DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 </DotnetRestorePrefix>
<DotnetRestoreCommand>$(DotnetRestorePrefix)$(DotnetRestoreCommand)</DotnetRestoreCommand>
<!-- Same as $(DotnetRestoreCommand), only doesn't specify `packages` arg -->
<DotnetRestoreCommandNoPackages>$(DotnetRestorePrefix)"$(DotnetToolCommand)" restore $(DotnetRestoreSource)</DotnetRestoreCommandNoPackages>
</PropertyGroup>
<PropertyGroup Condition="'$(BuildAllProjects)'=='true'">
@ -130,7 +133,7 @@
<TargetArchitecture Condition="'$(TargetArchitecture)' == ''">x64</TargetArchitecture>
<Platform Condition="'$(Platform)'==''">$(TargetArchitecture)</Platform>
</PropertyGroup>
<!--
<!--
Projects that have no OS-specific implementations just use Debug and Release for $(Configuration).
Projects that do have OS-specific implementations use OS_Debug and OS_Release, for all OS's we support even
if the code is the same between some OS's (so if you have some project that just calls POSIX APIs, we still have
@ -145,13 +148,13 @@
<PropertyGroup>
<OSGroup Condition="'$(OSGroup)' == ''">$(OsEnvironment)</OSGroup>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'==''">
<ConfigurationGroup Condition="'$(ConfigurationGroup)'==''">Debug</ConfigurationGroup>
<Configuration>$(ConfigurationGroup)</Configuration>
<Configuration>$(OSGroup)_$(Configuration)</Configuration>
</PropertyGroup>
<!--
If Configuration is set then someone explicitly passed it in or we building from VS. In either case
default $(ConfigurationGroup) or $(OSGroup) from the Configuration if they aren't
@ -203,34 +206,28 @@
<PropertyGroup>
<Framework>netcoreapp2.1</Framework>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetRid)' == '' and '$(OSGroup)' == 'Windows_NT'">
<TargetRid Condition="'$(TargetArchitecture)' == 'x86'">win7-x86</TargetRid>
<TargetRid Condition="'$(TargetArchitecture)' == 'x64'">win7-x64</TargetRid>
<TargetRid Condition="'$(TargetArchitecture)' == 'arm'">win8-arm</TargetRid>
<TargetRid Condition="'$(TargetArchitecture)' == 'arm64'">win10-arm64</TargetRid>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetRid)' == '' and '$(OSGroup)' == 'OSX'">
<TargetRid>osx.10.12-x64</TargetRid>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetRid)' == '' and '$(DistroRid)' != ''">
<TargetRid>$(DistroRid)</TargetRid>
<Import Project="$(HostMachineInfoProps)"
Condition="Exists('$(HostMachineInfoProps)')" />
<PropertyGroup Condition="'$(OutputRid)' == '' and '$(HostMachineRid)' != ''">
<OutputRid>$(HostMachineRid.Remove($(HostMachineRid.LastIndexOf('-'))))-$(TargetArchitecture)</OutputRid>
</PropertyGroup>
<!-- Portable -->
<PropertyGroup Condition="'$(PortableBuild)' == 'true'">
<TargetRid Condition="'$(OSGroup)' == 'Windows_NT'">win-$(TargetArchitecture)</TargetRid>
<TargetRid Condition="'$(OSGroup)' == 'OSX'">osx-$(TargetArchitecture)</TargetRid>
<TargetRid Condition="'$(OSGroup)' == 'Linux'">linux-$(TargetArchitecture)</TargetRid>
<OutputRid Condition="'$(OSGroup)' == 'Windows_NT'">win-$(TargetArchitecture)</OutputRid>
<OutputRid Condition="'$(OSGroup)' == 'OSX'">osx-$(TargetArchitecture)</OutputRid>
<OutputRid Condition="'$(OSGroup)' == 'Linux'">linux-$(TargetArchitecture)</OutputRid>
</PropertyGroup>
<PropertyGroup>
<TestTargetRid Condition="'$(TestTargetRid)' == '' and '$(PortableBuild)' != 'true' and '$(OSGroup)' == 'Windows_NT'">win10-$(TargetArchitecture)</TestTargetRid>
<TestTargetRid Condition="'$(TestTargetRid)' == ''">$(TargetRid)</TestTargetRid>
<TestTargetRid Condition="'$(TestTargetRid)' == ''">$(OutputRid)</TestTargetRid>
</PropertyGroup>
<!-- Set up the default output and intermediate paths -->
<PropertyGroup>
<OSPlatformConfig>$(TargetRid).$(ConfigurationGroup)</OSPlatformConfig>
<OSPlatformConfig>$(OutputRid).$(ConfigurationGroup)</OSPlatformConfig>
<BaseOutputPath Condition="'$(BaseOutputPath)'==''">$(BinDir)</BaseOutputPath>
<BaseOutputRootPath>$(BaseOutputPath)$(OSPlatformConfig)\</BaseOutputRootPath>
@ -251,12 +248,11 @@
<SharedFrameworkPublishDir>$(IntermediateOutputRootPath)sharedFrameworkPublish\</SharedFrameworkPublishDir>
<SharedFrameworkPublishSymbolsDir>$(IntermediateOutputRootPath)sharedFrameworkPublish.symbols\</SharedFrameworkPublishSymbolsDir>
<SharedFrameworkNameAndVersionRoot>$(SharedFrameworkPublishDir)shared\$(SharedFrameworkName)\$(SharedFrameworkNugetVersion)</SharedFrameworkNameAndVersionRoot>
</PropertyGroup>
<PropertyGroup>
<DisableCrossgen>false</DisableCrossgen>
<OutputVersionBadge>$(BaseOutputRootPath)sharedfx_$(TargetRid)_$(ConfigurationGroup)_version_badge.svg</OutputVersionBadge>
<OutputVersionBadge>$(BaseOutputRootPath)sharedfx_$(OutputRid)_$(ConfigurationGroup)_version_badge.svg</OutputVersionBadge>
</PropertyGroup>
<PropertyGroup>
@ -294,39 +290,39 @@
<TargetsCentos>false</TargetsCentos>
</PropertyGroup>
<Choose>
<When Condition="$(TargetRid.StartsWith('win'))">
<When Condition="$(OutputRid.StartsWith('win'))">
<PropertyGroup>
<TargetsWindows>true</TargetsWindows>
</PropertyGroup>
</When>
<When Condition="$(TargetRid.StartsWith('osx'))">
<When Condition="$(OutputRid.StartsWith('osx'))">
<PropertyGroup>
<TargetsOSX>true</TargetsOSX>
<TargetsUnix>true</TargetsUnix>
</PropertyGroup>
</When>
<When Condition="$(TargetRid.StartsWith('debian'))">
<When Condition="$(OutputRid.StartsWith('debian'))">
<PropertyGroup>
<TargetsDebian>true</TargetsDebian>
<TargetsLinux>true</TargetsLinux>
<TargetsUnix>true</TargetsUnix>
</PropertyGroup>
</When>
<When Condition="$(TargetRid.StartsWith('ubuntu'))">
<When Condition="$(OutputRid.StartsWith('ubuntu'))">
<PropertyGroup>
<TargetsUbuntu>true</TargetsUbuntu>
<TargetsLinux>true</TargetsLinux>
<TargetsUnix>true</TargetsUnix>
</PropertyGroup>
</When>
<When Condition="$(TargetRid.StartsWith('rhel'))">
<When Condition="$(OutputRid.StartsWith('rhel'))">
<PropertyGroup>
<TargetsRhel>true</TargetsRhel>
<TargetsLinux>true</TargetsLinux>
<TargetsUnix>true</TargetsUnix>
</PropertyGroup>
</When>
<When Condition="$(TargetRid.StartsWith('centos'))">
<When Condition="$(OutputRid.StartsWith('centos'))">
<PropertyGroup>
<TargetsCentos>true</TargetsCentos>
<TargetsLinux>true</TargetsLinux>
@ -349,18 +345,18 @@
<InstallerExtension Condition="'$(TargetsDebian)' == 'true' or '$(TargetsUbuntu)' == 'true'">.deb</InstallerExtension>
<InstallerExtension Condition="'$(TargetsRhel)' == 'true' or '$(TargetsCentos)' == 'true'">.rpm</InstallerExtension>
<CombinedInstallerExtension Condition="'$(OSGroup)' == 'Windows_NT'">.exe</CombinedInstallerExtension>
<CombinedInstallerExtension Condition="'$(OSGroup)' != 'Windows_NT'">$(InstallerExtension)</CombinedInstallerExtension>
<CombinedInstallerExtension Condition="'$(OSGroup)' != 'Windows_NT'">$(InstallerExtension)</CombinedInstallerExtension>
</PropertyGroup>
<!-- Use actual publishable (non-dummy) package name produced by the build system for this RID -->
<PropertyGroup Condition="'$(TargetRid)' != ''">
<PackageTargetRid>$(TargetRid)</PackageTargetRid>
<PackageTargetRid Condition="'$(TargetRid)' == 'osx.10.11-x64'">osx.10.10-x64</PackageTargetRid>
<PackageTargetRid Condition="'$(TargetRid)' == 'rhel.7.0-x64'">rhel.7-x64</PackageTargetRid>
<PackageTargetRid Condition="'$(TargetRid)' == 'rhel.7.1-x64'">rhel.7-x64</PackageTargetRid>
<PackageTargetRid Condition="'$(TargetRid)' == 'rhel.7.2-x64'">rhel.7-x64</PackageTargetRid>
<PackageTargetRid Condition="'$(TargetRid)' == 'rhel.7.3-x64'">rhel.7-x64</PackageTargetRid>
<PackageTargetRid Condition="'$(TargetRid)' == 'rhel.7.2-x64'">rhel.7-x64</PackageTargetRid>
<PropertyGroup Condition="'$(OutputRid)' != ''">
<PackageTargetRid>$(OutputRid)</PackageTargetRid>
<PackageTargetRid Condition="'$(OutputRid)' == 'osx.10.11-x64'">osx.10.10-x64</PackageTargetRid>
<PackageTargetRid Condition="'$(OutputRid)' == 'rhel.7.0-x64'">rhel.7-x64</PackageTargetRid>
<PackageTargetRid Condition="'$(OutputRid)' == 'rhel.7.1-x64'">rhel.7-x64</PackageTargetRid>
<PackageTargetRid Condition="'$(OutputRid)' == 'rhel.7.2-x64'">rhel.7-x64</PackageTargetRid>
<PackageTargetRid Condition="'$(OutputRid)' == 'rhel.7.3-x64'">rhel.7-x64</PackageTargetRid>
<PackageTargetRid Condition="'$(OutputRid)' == 'rhel.7.4-x64'">rhel.7-x64</PackageTargetRid>
<ProductMoniker>$(SharedFrameworkNugetVersion)-$(PackageTargetRid)</ProductMoniker>
<HostResolverVersionMoniker>$(HostResolverVersion)-$(PackageTargetRid)</HostResolverVersionMoniker>
</PropertyGroup>
@ -372,7 +368,7 @@
<HostFxrInstallerFile>$(HostFxrInstallerStart)$(HostResolverVersionMoniker)$(InstallerExtension)</HostFxrInstallerFile>
<SharedFrameworkInstallerFile>$(SharedFrameworkInstallerStart)$(ProductMoniker)$(InstallerExtension)</SharedFrameworkInstallerFile>
</PropertyGroup>
<PropertyGroup>
<SharedHostDebPkgName>dotnet-host</SharedHostDebPkgName>
<SharedHostDebPkgName>$(SharedHostDebPkgName.ToLower())</SharedHostDebPkgName>
@ -419,6 +415,11 @@
<MSBuildPassThroughPropertyList>/p:OSGroup=$(OSGroup) /p:DistroRid=$(DistroRid) /p:PortableBuild=$(PortableBuild) /p:TargetArchitecture=$(TargetArchitecture) /p:ConfigurationGroup=$(ConfigurationGroup)</MSBuildPassThroughPropertyList>
</PropertyGroup>
<PropertyGroup>
<!-- source-build currently uses a newer CLI version that requires `no-restore` to be passed into build/publish -->
<NoRestoreArg Condition="'$(DotNetBuildFromSource)' == 'true'">--no-restore</NoRestoreArg>
</PropertyGroup>
<!-- Use Roslyn Compilers to build, if we are not using the .NET SDK to build -->
<Import Project="$(RoslynPropsFile)" Condition="'$(UsingNETSdkCompiler)' != 'true' and '$(OsEnvironment)'!='Windows_NT' and Exists('$(RoslynPropsFile)') and '$(UseRoslynCompilers)'!='false'" />
<Import Project="$(RoslynPropsFile)" Condition="'$(UsingNETSdkCompiler)' != 'true' and '$(OsEnvironment)'=='Windows_NT' and Exists('$(RoslynPropsFile)')" />

Просмотреть файл

@ -12,9 +12,6 @@ set BUILD_TOOLS_PATH=%PACKAGES_DIR%Microsoft.DotNet.BuildTools\%BUILDTOOLS_VERSI
set INIT_TOOLS_RESTORE_PROJECT=%~dp0init-tools.msbuild
set BUILD_TOOLS_SEMAPHORE=%TOOLRUNTIME_DIR%\%BUILDTOOLS_VERSION%\init-tools.completed
:: We do not want to run the first-time experience.
set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
:: if force option is specified then clean the tool runtime and build tools package directory to force it to get recreated
if [%1]==[force] (
if exist "%TOOLRUNTIME_DIR%" rmdir /S /Q "%TOOLRUNTIME_DIR%"
@ -29,10 +26,24 @@ if exist "%BUILD_TOOLS_SEMAPHORE%" (
if exist "%TOOLRUNTIME_DIR%" rmdir /S /Q "%TOOLRUNTIME_DIR%"
if exist "%DotNetBuildToolsDir%" (
echo Using tools from '%DotNetBuildToolsDir%'.
mklink /j "%TOOLRUNTIME_DIR%" "%DotNetBuildToolsDir%"
if not exist "%DOTNET_CMD%" (
echo ERROR: Ensure that '%DotNetBuildToolsDir%' contains the .NET Core SDK at '%DOTNET_PATH%'
exit /b 1
)
echo Done initializing tools.
echo Using tools from '%DotNetBuildToolsDir%'. > "%BUILD_TOOLS_SEMAPHORE%"
exit /b 0
)
echo Running %0 > "%INIT_TOOLS_LOG%"
set /p DOTNET_VERSION=< "%~dp0DotnetCLIVersion.txt"
if exist "%DOTNET_CMD%" goto :afterdotnetinstall
if exist "%DOTNET_CMD%" goto :afterdotnetrestore
echo Installing dotnet cli...
if NOT exist "%DOTNET_PATH%" mkdir "%DOTNET_PATH%"
@ -46,7 +57,7 @@ if NOT exist "%DOTNET_LOCAL_PATH%" (
exit /b 1
)
:afterdotnetinstall
:afterdotnetrestore
if exist "%BUILD_TOOLS_PATH%" goto :afterbuildtoolsrestore
echo Restoring BuildTools version %BUILDTOOLS_VERSION%...

Просмотреть файл

@ -12,126 +12,116 @@ __BUILD_TOOLS_PACKAGE_VERSION=$(cat $__scriptpath/BuildToolsVersion.txt)
__DOTNET_TOOLS_VERSION=$(cat $__scriptpath/DotnetCLIVersion.txt)
__BUILD_TOOLS_PATH=$__PACKAGES_DIR/microsoft.dotnet.buildtools/$__BUILD_TOOLS_PACKAGE_VERSION/lib
__INIT_TOOLS_RESTORE_PROJECT=$__scriptpath/init-tools.msbuild
__INIT_TOOLS_DONE_MARKER_DIR=$__TOOLRUNTIME_DIR/$__BUILD_TOOLS_PACKAGE_VERSION
__INIT_TOOLS_DONE_MARKER=$__INIT_TOOLS_DONE_MARKER_DIR/done
__BUILD_TOOLS_SEMAPHORE=$__TOOLRUNTIME_DIR/$__BUILD_TOOLS_PACKAGE_VERSION/init-tools.complete
# We do not want to run the first-time experience.
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
if [ -z "$__DOTNET_PKG" ]; then
if [ "$(uname -m | grep "i[3456]86")" = "i686" ]; then
echo "Warning: build not supported on 32 bit Unix"
fi
OSName=$(uname -s)
case $OSName in
Darwin)
OS=OSX
__DOTNET_PKG=dotnet-dev-osx-x64
ulimit -n 2048
;;
Linux)
__DOTNET_PKG=dotnet-dev-linux-x64
OS=Linux
if [ -e /etc/os-release ]; then
source /etc/os-release
if [[ $ID == "alpine" ]]; then
# remove the last version digit
VERSION_ID=${VERSION_ID%.*}
__DOTNET_PKG=dotnet-dev-alpine.$VERSION_ID-x64
fi
elif [ -e /etc/redhat-release ]; then
redhatRelease=$(</etc/redhat-release)
if [[ $redhatRelease == "CentOS release 6."* || $redhatRelease == "Red Hat Enterprise Linux Server release 6."* ]]; then
__DOTNET_PKG=dotnet-dev-rhel.6-x64
fi
fi
;;
*)
echo "Unsupported OS '$OSName' detected. Downloading linux-x64 tools."
OS=Linux
__DOTNET_PKG=dotnet-dev-linux-x64
;;
esac
if [ -e $__BUILD_TOOLS_SEMAPHORE ]; then
echo "Tools are already initialized"
return #return instead of exit because this script is inlined in other scripts which we don't want to exit
fi
if [ ! -e $__INIT_TOOLS_DONE_MARKER ]; then
__PATCH_CLI_NUGET_FRAMEWORKS=0
if [ -e $__TOOLRUNTIME_DIR ]; then rm -rf -- $__TOOLRUNTIME_DIR; fi
if [ -e $__TOOLRUNTIME_DIR ]; then rm -rf -- $__TOOLRUNTIME_DIR; fi
echo "Running: $__scriptpath/init-tools.sh" > $__init_tools_log
if [ -d "$DotNetBuildToolsDir" ]; then
echo "Using tools from '$DotNetBuildToolsDir'."
ln -s "$DotNetBuildToolsDir" "$__TOOLRUNTIME_DIR"
if [ ! -e $__DOTNET_PATH ]; then
mkdir -p "$__DOTNET_PATH"
if [ -n "$DOTNET_TOOLSET_DIR" ] && [ -d "$DOTNET_TOOLSET_DIR/$__DOTNET_TOOLS_VERSION" ]; then
echo "Copying $DOTNET_TOOLSET_DIR/$__DOTNET_TOOLS_VERSION to $__DOTNET_PATH" >> $__init_tools_log
cp -r $DOTNET_TOOLSET_DIR/$__DOTNET_TOOLS_VERSION/* $__DOTNET_PATH
elif [ -n "$DOTNET_TOOL_DIR" ] && [ -d "$DOTNET_TOOL_DIR" ]; then
echo "Copying $DOTNET_TOOL_DIR to $__DOTNET_PATH" >> $__init_tools_log
cp -r $DOTNET_TOOL_DIR/* $__DOTNET_PATH
else
echo "Installing dotnet cli..."
__DOTNET_LOCATION="https://dotnetcli.azureedge.net/dotnet/Sdk/${__DOTNET_TOOLS_VERSION}/${__DOTNET_PKG}.${__DOTNET_TOOLS_VERSION}.tar.gz"
# curl has HTTPS CA trust-issues less often than wget, so lets try that first.
echo "Installing '${__DOTNET_LOCATION}' to '$__DOTNET_PATH/dotnet.tar'" >> $__init_tools_log
which curl > /dev/null 2> /dev/null
if [ $? -ne 0 ]; then
wget -q -O $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION}
else
curl --retry 10 -sSL --create-dirs -o $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION}
fi
cd $__DOTNET_PATH
tar -xf $__DOTNET_PATH/dotnet.tar
cd $__scriptpath
__PATCH_CLI_NUGET_FRAMEWORKS=1
fi
if [ ! -e "$__DOTNET_CMD" ]; then
echo "ERROR: Ensure that $DotNetBuildToolsDir contains the .NET Core SDK at $__DOTNET_PATH"
exit 1
fi
if [ -n "$BUILD_TOOLS_TOOLSET_DIR" ] && [ -d "$BUILD_TOOLS_TOOLSET_DIR/$__BUILD_TOOLS_PACKAGE_VERSION" ]; then
echo "Copying $BUILD_TOOLS_TOOLSET_DIR/$__BUILD_TOOLS_PACKAGE_VERSION to $__TOOLRUNTIME_DIR" >> $__init_tools_log
cp -r $BUILD_TOOLS_TOOLSET_DIR/$__BUILD_TOOLS_PACKAGE_VERSION/* $__TOOLRUNTIME_DIR
elif [ -n "$BUILD_TOOLS_TOOL_DIR" ] && [ -d "$BUILD_TOOLS_TOOL_DIR" ]; then
echo "Copying $BUILD_TOOLS_TOOL_DIR to $__TOOLRUNTIME_DIR" >> $__init_tools_log
cp -r $BUILD_TOOLS_TOOL_DIR/* $__TOOLRUNTIME_DIR
else
if [ ! -e $__BUILD_TOOLS_PATH ]; then
echo "Restoring BuildTools version $__BUILD_TOOLS_PACKAGE_VERSION..."
echo "Running: $__DOTNET_CMD restore \"$__INIT_TOOLS_RESTORE_PROJECT\" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION" >> $__init_tools_log
$__DOTNET_CMD restore "$__INIT_TOOLS_RESTORE_PROJECT" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION >> $__init_tools_log
if [ ! -e "$__BUILD_TOOLS_PATH/init-tools.sh" ]; then echo "ERROR: Could not restore build tools correctly. See '$__init_tools_log' for more details."1>&2; fi
fi
echo "Initializing BuildTools..."
echo "Running: $__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR" >> $__init_tools_log
# Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424
chmod +x $__BUILD_TOOLS_PATH/init-tools.sh
$__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR >> $__init_tools_log
if [ "$?" != "0" ]; then
echo "ERROR: An error occured when trying to initialize the tools. Please check '$__init_tools_log' for more details."1>&2
exit 1
fi
fi
echo "Making all .sh files executable under Tools."
# Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424
ls $__scriptpath/Tools/*.sh | xargs chmod +x
ls $__scriptpath/Tools/scripts/docker/*.sh | xargs chmod +x
Tools/crossgen.sh $__scriptpath/Tools
mkdir -p $__INIT_TOOLS_DONE_MARKER_DIR
touch $__INIT_TOOLS_DONE_MARKER
echo "Done initializing tools."
else
echo "Tools are already initialized"
mkdir -p "$(dirname "$__BUILD_TOOLS_SEMAPHORE")" && touch $__BUILD_TOOLS_SEMAPHORE
exit 0
fi
echo "Running: $__scriptpath/init-tools.sh" > $__init_tools_log
if [ ! -e $__DOTNET_PATH ]; then
if [ -z "$__DOTNET_PKG" ]; then
if [ "$(uname -m | grep "i[3456]86")" = "i686" ]; then
echo "Warning: build not supported on 32 bit Unix"
fi
OSName=$(uname -s)
case $OSName in
Darwin)
OS=OSX
__DOTNET_PKG=dotnet-dev-osx-x64
ulimit -n 2048
;;
Linux)
__DOTNET_PKG=dotnet-dev-linux-x64
OS=Linux
if [ -e /etc/os-release ]; then
source /etc/os-release
if [[ $ID == "alpine" ]]; then
# remove the last version digit
VERSION_ID=${VERSION_ID%.*}
__DOTNET_PKG=dotnet-dev-alpine.$VERSION_ID-x64
fi
elif [ -e /etc/redhat-release ]; then
redhatRelease=$(</etc/redhat-release)
if [[ $redhatRelease == "CentOS release 6."* || $redhatRelease == "Red Hat Enterprise Linux Server release 6."* ]]; then
__DOTNET_PKG=dotnet-dev-rhel.6-x64
fi
fi
;;
*)
echo "Unsupported OS '$OSName' detected. Downloading linux-x64 tools."
OS=Linux
__DOTNET_PKG=dotnet-dev-linux-x64
;;
esac
fi
mkdir -p "$__DOTNET_PATH"
echo "Installing dotnet cli..."
__DOTNET_LOCATION="https://dotnetcli.azureedge.net/dotnet/Sdk/${__DOTNET_TOOLS_VERSION}/${__DOTNET_PKG}.${__DOTNET_TOOLS_VERSION}.tar.gz"
# curl has HTTPS CA trust-issues less often than wget, so lets try that first.
echo "Installing '${__DOTNET_LOCATION}' to '$__DOTNET_PATH/dotnet.tar'" >> $__init_tools_log
which curl > /dev/null 2> /dev/null
if [ $? -ne 0 ]; then
wget -q -O $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION}
else
curl --retry 10 -sSL --create-dirs -o $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION}
fi
cd $__DOTNET_PATH
tar -xf $__DOTNET_PATH/dotnet.tar
cd $__scriptpath
fi
if [ ! -e $__BUILD_TOOLS_PATH ]; then
echo "Restoring BuildTools version $__BUILD_TOOLS_PACKAGE_VERSION..."
echo "Running: $__DOTNET_CMD restore \"$__INIT_TOOLS_RESTORE_PROJECT\" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION" >> $__init_tools_log
$__DOTNET_CMD restore "$__INIT_TOOLS_RESTORE_PROJECT" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION >> $__init_tools_log
if [ ! -e "$__BUILD_TOOLS_PATH/init-tools.sh" ]; then echo "ERROR: Could not restore build tools correctly. See '$__init_tools_log' for more details."1>&2; fi
fi
echo "Initializing BuildTools..."
echo "Running: $__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR" >> $__init_tools_log
# Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424
chmod +x $__BUILD_TOOLS_PATH/init-tools.sh
$__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR >> $__init_tools_log
if [ "$?" != "0" ]; then
echo "ERROR: An error occured when trying to initialize the tools. Please check '$__init_tools_log' for more details."1>&2
exit 1
fi
echo "Making all .sh files executable under Tools."
# Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424
ls $__scriptpath/Tools/*.sh | xargs chmod +x
ls $__scriptpath/Tools/scripts/docker/*.sh | xargs chmod +x
Tools/crossgen.sh $__scriptpath/Tools
mkdir -p "$(dirname "$__BUILD_TOOLS_SEMAPHORE")" && touch $__BUILD_TOOLS_SEMAPHORE
echo "Done initializing tools."

Просмотреть файл

@ -48,7 +48,7 @@ platformList.each { platform ->
dockerContainer = "ubuntu1404_cross_prereqs_v4-tizen_rootfs"
dockerCommand = "docker run -e ROOTFS_DIR=/crossrootfs/${architecture}.tizen.build --name ${dockerContainer} --rm -v \${WORKSPACE}:${dockerWorkingDirectory} -w=${dockerWorkingDirectory} ${dockerRepository}:${dockerContainer}"
buildArgs += " -DistroRid=tizen.4.0.0-${architecture} -SkipTests=true -DisableCrossgen=true -PortableBuild=false -CrossBuild=true -- /p:OverridePackageSource=https:%2F%2Ftizen.myget.org/F/dotnet-core/api/v3/index.json"
buildArgs += " -SkipTests=true -DisableCrossgen=true -PortableBuild=false -CrossBuild=true -- /p:OverridePackageSource=https:%2F%2Ftizen.myget.org/F/dotnet-core/api/v3/index.json /p:OutputRid=tizen.4.0.0-${architecture}"
buildCommand = "${dockerCommand} ./build.sh ${buildArgs}"
}
else if (os == "Linux") {
@ -57,7 +57,7 @@ platformList.each { platform ->
if (architecture == 'arm' || architecture == 'armel') {
dockerContainer = "ubuntu-14.04-cross-0cd4667-20172211042239"
dockerCommand = "docker run -e ROOTFS_DIR=/crossrootfs/${architecture} --name ${dockerContainer} --rm -v \${WORKSPACE}:${dockerWorkingDirectory} -w=${dockerWorkingDirectory} ${dockerRepository}:${dockerContainer}"
buildArgs += " -DistroRid=linux-${architecture} -SkipTests=true -DisableCrossgen=true -CrossBuild=true"
buildArgs += " -SkipTests=true -DisableCrossgen=true -CrossBuild=true"
buildCommand = "${dockerCommand} ./build.sh ${buildArgs}"
osForGHTrigger = "Linux"

Просмотреть файл

@ -9,11 +9,6 @@
<ChecksumsRelativePath>Runtime/$(ProductVersion)</ChecksumsRelativePath>
<ChecksumExtension>.sha512</ChecksumExtension>
</PropertyGroup>
<PropertyGroup>
<ProductMoniker>$(DistroRid).$(SharedFrameworkNugetVersion)</ProductMoniker>
<HostResolverVersionMoniker>$(DistroRid).$(HostResolverVersion)</HostResolverVersionMoniker>
</PropertyGroup>
<ItemGroup>
<!-- IgnorableErrorMessages applies to the "ExectWithRetriesForNuGetPush" task.

Просмотреть файл

@ -67,7 +67,7 @@
</RepoIds>
</ItemGroup>
<PropertyGroup>
<RidWithoutDots>$([System.String]::Copy($(DistroRid)).Replace('.', ''))</RidWithoutDots>
<RidWithoutDots>$([System.String]::Copy($(OutputRid)).Replace('.', ''))</RidWithoutDots>
<DebRepoId Condition="$([System.String]::Copy(%(RepoIds.Identity)).EndsWith('$(RidWithoutDots)'))">%(RepoIds.Key)</DebRepoId>
</PropertyGroup>
<Error Condition="'$(DebRepoId)'=='' OR '$(DebRepoUser)'=='' OR '$(DebRepoPass)'=='' OR '$(DebRepoServer)'==''"

Просмотреть файл

@ -12,9 +12,19 @@
<Target Name="PublishFinalOutput"
Condition="'$(Finalize)' == 'true'"
DependsOnTargets="PublishCoreHostPackagesToFeed;FinalizeBuildInAzure;UpdatePublishedVersions" />
<Target Name="ExcludeSymbolsPackagesFromPublishedVersions" BeforeTargets="UpdatePublishedVersions" >
DependsOnTargets="PublishCoreHostPackagesToFeed;FinalizeBuildInAzure;UpdateVersionsRepo" />
<!--
Target wrapping UpdatePublishedVersions: ensures that ShippedNuGetPackage items are created and
disables versions repo update if no auth token is defined. Otherwise, not specifying an auth
token would cause an error.
-->
<Target Name="UpdateVersionsRepo"
Condition="'$(GitHubAuthToken)' != ''"
DependsOnTargets="ExcludeSymbolsPackagesFromPublishedVersions;
UpdatePublishedVersions" />
<Target Name="ExcludeSymbolsPackagesFromPublishedVersions">
<ItemGroup>
<PackagesToShip Include="$(PublishDirectory)*.nupkg" Exclude="$(PublishDirectory)*.symbols.nupkg" />
<PackagesToShip Remove="%(PackagesToShip.Identity)" Condition="$([System.String]::Copy('%(PackagesToShip.Identity)').Contains('latest'))" />
@ -30,7 +40,7 @@
Properties="%(Project.AdditionalProperties)"
BuildInParallel="true" />
</Target>
<Target Name="EnsureUniqueItemsToUpload">
<ItemGroup>
<DedupItems Include="@(ItemsToPublish->Distinct())" />
@ -86,8 +96,13 @@
</Target>
<Target Name="PublishDebFilesToDebianRepo"
DependsOnTargets="GenerateDebRepoFiles">
<Exec Condition="'@(DebInstallerFile)' != ''" Command="$(ProjectDir)tools-local/scripts/publish/repoapi_client.sh $(DebRepoUser) $(DebRepoPass) $(DebRepoId) $(DebRepoServer) -addpkg %(DebInstallerFile.UploadJsonFilename)" />
DependsOnTargets="GenerateDebRepoFiles"
Condition="'$(DebRepoId)' != '' AND
'$(DebRepoUser)' != '' AND
'$(DebRepoPass)' != '' AND
'$(DebRepoServer)' != ''">
<Exec Condition="'@(DebInstallerFile)' != ''"
Command="$(ProjectDir)tools-local/scripts/publish/repoapi_client.sh $(DebRepoUser) $(DebRepoPass) $(DebRepoId) $(DebRepoServer) -addpkg %(DebInstallerFile.UploadJsonFilename)" />
</Target>
<Target Name="FinalizeBuildInAzure"
@ -136,7 +151,7 @@
<Target Name="PublishCoreHostPackagesToFeed"
DependsOnTargets="CheckIfAllBuildsHavePublished;DownloadCoreHostPackages;SignSymbolPackages;DoPushCoreHostPackagesToFeed"
Condition="'@(_MissingBlobNames)' == ''">
Condition="'@(_MissingBlobNames)' == '' AND '$(NuGetFeedUrl)' != ''">
<Error Condition="'$(NuGetFeedUrl)' ==''" Text="Missing required property NuGetFeedUrl" />
<Error Condition="'$(NuGetApiKey)' == ''" Text="Missing required property NuGetApiKey" />
<Error Condition="'$(AzureAccessToken)' == ''" Text="Missing required property 'AzureAccessToken'" />
@ -227,8 +242,7 @@
</Target>
<Target Name="PublishDebToolPackageToFeed"
Condition="'$(PublishDebToolToFeed)' == 'true'">
<Error Condition="'$(CliNuGetFeedUrl)' ==''" Text="Missing required property CliNuGetFeedUrl" />
Condition="'$(PublishDebToolToFeed)' == 'true' AND '$(CliNuGetFeedUrl)' != ''">
<Error Condition="'$(CliNuGetApiKey)' == ''" Text="Missing required property CliNuGetApiKey" />
<ItemGroup>
<DebToolPackages Include="$(PackagesOutDir)/dotnet-deb-tool.*.nupkg" />

Просмотреть файл

@ -17,8 +17,5 @@ if not exist "%_VSCOMNTOOLS%" (
call "%_VSCOMNTOOLS%\VsDevCmd.bat"
:Run
:: We do not want to run the first-time experience.
set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
pushd %~dp0
powershell -NoProfile -ExecutionPolicy unrestricted -Command "%~dp0run.ps1 -- %*"
exit /b %ERRORLEVEL%

Просмотреть файл

@ -2,6 +2,9 @@
$toolsLocalPath = Join-Path $PSScriptRoot "Tools"
$restorePackagesPath = Join-Path $PSScriptRoot "packages"
# We do not want to run the first-time experience.
$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = 1
$initTools = Join-Path $PSScriptRoot "init-tools.cmd"
& $initTools

5
run.sh
Просмотреть файл

@ -11,11 +11,12 @@ invocation='echo "Calling: ${FUNCNAME[0]}"'
__scriptpath=$(cd "$(dirname "$0")"; pwd -P)
__toolsLocalPath=$__scriptpath/Tools
# We do not want to run the first-time experience.
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
$__scriptpath/init-tools.sh
__dotnet=$__toolsLocalPath/dotnetcli/dotnet
# We do not want to run the first-time experience.
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
$__dotnet $__toolsLocalPath/run.exe $*
exit $?

Просмотреть файл

@ -11,7 +11,7 @@
<Import Project="$(ToolsDir)MicroBuild.Core.targets" />
<Target Name="SetSigningProperties">
<Error Condition="'$(TargetRid)' == ''" Text="Missing required property 'TargetRid'." />
<Error Condition="'$(OutputRid)' == ''" Text="Missing required property 'OutputRid'." />
<Error Condition="'$(CertificateId)' == ''" Text="Missing required property 'CertificateId'." />
<PropertyGroup>
<!-- The OutDir and IntermediateOutputPath properties are required by MicroBuild. MicroBuild only

Просмотреть файл

@ -61,7 +61,7 @@
Properties="GenerateNativeVersionInfo=true;AssemblyName=%(HostFiles.Identity);NativeVersionFileDir=$(IntermediateOutputRootPath)hostResourceFiles\%(HostFiles.Identity);NativeVersionHeaderFile=$(IntermediateOutputRootPath)hostResourceFiles\%(HostFiles.Identity)\version_info.h"
Targets="GenerateVersionHeader" />
<PropertyGroup>
<BuildArgs>$(ConfigurationGroup) $(TargetArchitecture) apphostver $(AppHostVersion) hostver $(HostVersion) fxrver $(HostResolverVersion) policyver $(HostPolicyVersion) commit $(LatestCommit) rid $(TargetRid)</BuildArgs>
<BuildArgs>$(ConfigurationGroup) $(TargetArchitecture) apphostver $(AppHostVersion) hostver $(HostVersion) fxrver $(HostResolverVersion) policyver $(HostPolicyVersion) commit $(LatestCommit) rid $(OutputRid)</BuildArgs>
<BuildArgs Condition="'$(PortableBuild)' == 'true'">$(BuildArgs) portable</BuildArgs>
<CustomNativeToolsetDir Condition="'$(TargetArchitecture)' == 'arm64'"> toolsetdir $(NativeToolsetDir)</CustomNativeToolsetDir>
</PropertyGroup>

Просмотреть файл

@ -13,7 +13,7 @@
</ItemGroup>
<PropertyGroup>
<BuildArgs>$(MSBuildPassThroughPropertyList) /p:BaseOutputPath=$(IntermediateOutputForPackaging)</BuildArgs>
<BuildArgs>$(NoRestoreArg) $(MSBuildPassThroughPropertyList) /p:BaseOutputPath=$(IntermediateOutputForPackaging)</BuildArgs>
</PropertyGroup>
<Exec Command="$(DotnetToolCommand) build $(BuildArgs) %(PackageProjects.Identity)" />

Просмотреть файл

@ -2,6 +2,6 @@
<Project ToolsVersion="12.0" InitialTargets="CheckForBuildTools" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\dir.targets" />
<PropertyGroup>
<RuntimeIdGraphDefinitionFile>$(ProjectDir)packages\$(PlatformPackageId.ToLowerInvariant())\$(PlatformPackageVersion)\runtime.json</RuntimeIdGraphDefinitionFile>
<RuntimeIdGraphDefinitionFile>$(PackagesDir)$(PlatformPackageId.ToLowerInvariant())\$(PlatformPackageVersion)\runtime.json</RuntimeIdGraphDefinitionFile>
</PropertyGroup>
</Project>

Просмотреть файл

@ -31,7 +31,7 @@
"debian_dependencies":{
"%HOSTFXR_DEBIAN_PACKAGE_NAME%" : {},
"libssl1.0.0" : {},
"%LIBICU_PACKAGE_NAME%": {}
"%LIBICU_PACKAGE_NAME%": {}
},
"debian_ignored_dependencies" : [

Просмотреть файл

@ -12,8 +12,12 @@
</PropertyGroup>
<Target Name="InitializeDotnetDebTool">
<PropertyGroup>
<VersionSuffixArg Condition="'$(VersionSuffix)' != ''">--version-suffix $(VersionSuffix)</VersionSuffixArg>
</PropertyGroup>
<Exec Command="$(DotnetRestoreCommand) $(dotnetDebToolSource)"/>
<Exec Command="$(DotnetToolCommand) pack $(dotnetDebToolSource) --output $(PackagesOutDir)intermediate/ --version-suffix $(VersionSuffix)"/>
<Exec Command="$(DotnetToolCommand) pack $(dotnetDebToolSource) --output $(PackagesOutDir)intermediate/ $(VersionSuffixArg)"/>
<ItemGroup>
<pkFiles Include="$(PackagesOutDir)intermediate/dotnet-deb-tool.*.nupkg"
@ -43,7 +47,7 @@
DependsOnTargets="TestDebuild;
BuildDebs;"
Condition="'$(BuildDebPackage)'=='true'" />
<Target Name="BuildDebs"
DependsOnTargets="InitializeDotnetDebTool;GenerateSharedHostDeb;GenerateHostFxrDeb;GenerateSharedFrameworkDeb"
Condition="'$(BuildDebPackage)'=='true' and '$(DebuildPresent)' == 'true'" />
@ -85,7 +89,7 @@
<SHManpages Include="$(ManPagesDir)/**/*" />
</ItemGroup>
<Copy SourceFiles="@(SHFiles)" DestinationFiles="@(SHFiles->'$(debLayoutPackageRoot)/%(RecursiveDir)%(Filename)%(Extension)')" />
<Copy SourceFiles="@(SHFiles)" DestinationFiles="@(SHFiles->'$(debLayoutPackageRoot)/%(RecursiveDir)%(Filename)%(Extension)')" />
<Copy SourceFiles="@(SHManpages)" DestinationFiles="@(SHManpages->'$(debLayoutDocs)/%(RecursiveDir)%(Filename)%(Extension)')" />
<!-- Replace config json variables -->
@ -153,7 +157,7 @@
<HFFiles Include="$(InputRoot)/**/*" />
</ItemGroup>
<Copy SourceFiles="@(HFFiles)" DestinationFiles="@(HFFiles->'$(debLayoutPackageRoot)/%(RecursiveDir)%(Filename)%(Extension)')" />
<Copy SourceFiles="@(HFFiles)" DestinationFiles="@(HFFiles->'$(debLayoutPackageRoot)/%(RecursiveDir)%(Filename)%(Extension)')" />
<!-- Replace config json variables -->
<ItemGroup>
@ -191,7 +195,7 @@
OverwriteReadOnlyFiles="True"
SkipUnchangedFiles="False"
UseHardlinksIfPossible="False" />
</Target>
<Target Name="GenerateSharedFrameworkDeb">
@ -217,11 +221,11 @@
<RemoveDir Condition="Exists('$(debIntermediatesDir)')" Directories="$(debIntermediatesDir)" />
<MakeDir Directories="$(debIntermediatesDir)" />
<!-- Compute ICU Version -->
<Exec Command="apt-cache search --names-only '^libicu[0-9]+$' | cut -d' ' -f1"
ConsoleToMSBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="LibIcuPackageName" />
</Exec>
<!-- Compute ICU Version -->
<Exec Command="apt-cache search --names-only '^libicu[0-9]+$' | cut -d' ' -f1"
ConsoleToMSBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="LibIcuPackageName" />
</Exec>
<!-- Create empty debian layout -->
<RemoveDir Condition="Exists('$(debLayoutDirectory)')" Directories="$(debLayoutDirectory)" />
@ -233,10 +237,10 @@
<!-- Copy files to debian layout -->
<ItemGroup>
<SFFiles Include="$(InputRoot)/**/*" />
<SFFiles Include="$(InputRoot)/**/*" />
</ItemGroup>
<Copy SourceFiles="@(SFFiles)" DestinationFiles="@(SFFiles->'$(debLayoutPackageRoot)/%(RecursiveDir)%(Filename)%(Extension)')"/>
<Copy SourceFiles="@(SFFiles)" DestinationFiles="@(SFFiles->'$(debLayoutPackageRoot)/%(RecursiveDir)%(Filename)%(Extension)')"/>
<!-- Replace config json variables -->
<ItemGroup>
@ -255,9 +259,9 @@
<SharedFrameworkTokenValue Include="%SHARED_FRAMEWORK_BRAND_NAME%">
<ReplacementString>$(SharedFrameworkBrandName)</ReplacementString>
</SharedFrameworkTokenValue>
<SharedFrameworkTokenValue Include="%LIBICU_PACKAGE_NAME%">
<ReplacementString>$(LibIcuPackageName)</ReplacementString>
</SharedFrameworkTokenValue>
<SharedFrameworkTokenValue Include="%LIBICU_PACKAGE_NAME%">
<ReplacementString>$(LibIcuPackageName)</ReplacementString>
</SharedFrameworkTokenValue>
</ItemGroup>

Просмотреть файл

@ -2,7 +2,7 @@
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="dir.props" />
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
<PropertyGroup>
<PackageTargets>
GenerateVersionBadge;
@ -26,7 +26,7 @@
<RemoveDir Directories="@(OutDirs)" />
<!-- copy shared host layout -->
<Copy SourceFiles="$(SharedFrameworkPublishDir)dotnet$(ExeSuffix)"
<Copy SourceFiles="$(SharedFrameworkPublishDir)dotnet$(ExeSuffix)"
DestinationFolder="$(SharedHostPublishRoot)" />
<Copy SourceFiles="$(ProjectDir)resources/ThirdPartyNotices.txt"
@ -57,22 +57,22 @@
<!-- Fix file permits -->
<!-- Reset everything to user readable/writeable and group and world readable. -->
<Exec Condition="'$(OSGroup)' != 'Windows_NT'"
Command='find %(OutDirs.Identity) -type f -name "*" -exec chmod 644 {} \;' />
<!-- Generally, dylibs and sos have 'x' -->
Command='find %(OutDirs.Identity) -type f -name "*" -exec chmod 644 {} \;' />
<!-- Generally, dylibs and sos have 'x' -->
<Exec Condition="'$(OSGroup)' != 'Windows_NT'"
Command='find %(OutDirs.Identity) -type f -name "*.dylib" -exec chmod 755 {} \;' />
<Exec Condition="'$(OSGroup)' != 'Windows_NT'"
Command='find %(OutDirs.Identity) -type f -name "*.so" -exec chmod 755 {} \;' />
Command='find %(OutDirs.Identity) -type f -name "*.so" -exec chmod 755 {} \;' />
<!-- Executables (those without dots) are executable -->
<Exec Condition="'$(OSGroup)' != 'Windows_NT'"
Command='find %(OutDirs.Identity) -type f ! -name "*.*" -exec chmod 755 {} \;' />
Command='find %(OutDirs.Identity) -type f ! -name "*.*" -exec chmod 755 {} \;' />
<!-- Copy all to combined directory -->
<ItemGroup>
<CombinedFiles Include="$(SharedHostPublishRoot)\**\*" />
<CombinedFiles Include="$(HostFxrPublishRoot)/**\*" />
<CombinedFiles Include="$(SharedFrameworkPublishRoot)/**\*" />
<CombinedFiles Include="$(SharedFrameworkPublishRoot)/**\*" />
</ItemGroup>
<RemoveDir Directories="@(CombinedPublishRoot)" />
<Copy SourceFiles="@(CombinedFiles)"
@ -89,14 +89,14 @@
</PropertyGroup>
<MakeDir Condition="!Exists('$(BaseOutputRootPath)')" Directories="$(BaseOutputRootPath)" />
<WriteLinesToFile
File="$(OutputVersionBadge)"
Lines="$([System.IO.File]::ReadAllText('$(templateSvg)').Replace('ver_number', '$(ProductVersion)'))"
Overwrite="true"
/>
</Target>
<Target Name="GenerateCompressedFiles" DependsOnTargets="InitPackage;GenerateZip;GenerateTarBall" Condition="'$(UsePrebuiltPortableBinariesForInstallers)' == 'false'"/>
<UsingTask TaskName="ZipFileCreateFromDirectory" AssemblyFile="$(BuildToolsTaskDir)Microsoft.DotNet.Build.Tasks.dll"/>
@ -129,10 +129,10 @@
<!-- tar command will throw 'file changed as we read it' on some distros. ignore that error.
we use -C so that we get a relative folder structure which is compressed rather than the full path -->
<Exec Command="tar -C $(CombinedPublishRoot) -czf $(PackagesOutDir)$(CombinedCompressedFile) ."
<Exec Command="tar -C $(CombinedPublishRoot) -czf $(PackagesOutDir)$(CombinedCompressedFile) ."
IgnoreExitCode="true"
IgnoreStandardErrorWarningFormat="true" />
<Exec Command="tar -C $(HostFxrPublishRoot) -czf $(PackagesOutDir)$(HostFxrCompressedFile) ."
<Exec Command="tar -C $(HostFxrPublishRoot) -czf $(PackagesOutDir)$(HostFxrCompressedFile) ."
IgnoreExitCode="true"
IgnoreStandardErrorWarningFormat="true" />
<Exec Command="tar -C $(SharedFrameworkPublishRoot) -czf $(PackagesOutDir)$(SharedFrameworkCompressedFile) ."
@ -146,7 +146,7 @@
<Error Condition="!Exists('$(PackagesOutDir)$(SharedFrameworkCompressedFile)')" Message="Unable to create $(PackagesOutDir)$(SharedFrameworkCompressedFile)" />
<Error Condition="!Exists('$(PackagesOutDir)$(SharedFrameworkSymbolsCompressedFile)')" Message="Unable to create $(PackagesOutDir)$(SharedFrameworkSymbolsCompressedFile)" />
</Target>
<Import Project="windows\package.targets" />
<Import Project="osx\package.targets" />
<Import Project="deb\package.targets" />
@ -165,17 +165,24 @@
<Target Name="GenerateCombinedInstallers" DependsOnTargets="InitPackage;GenerateBundles" />
<Target Name="GenerateNugetPackages" DependsOnTargets="InitPackage" Condition="'$(UsePrebuiltPortableBinariesForInstallers)' == 'false'">
<ItemGroup>
<!-- The list of packages we are servicing -->
<PackageProjects Include="$(ProjectDir)src\managed\Microsoft.DotNet.PlatformAbstractions\Microsoft.DotNet.PlatformAbstractions.csproj" />
<PackageProjects Include="$(ProjectDir)src\managed\Microsoft.Extensions.DependencyModel\Microsoft.Extensions.DependencyModel.csproj" />
</ItemGroup>
<ItemGroup Condition="'$(BuildAllPackages)' == 'true'">
<!-- The list of packages we are not servicing -->
</ItemGroup>
<PropertyGroup>
<PackArgs>--no-build --output $(PackagesOutDir)</PackArgs>
<PackArgs>$(NoRestoreArg) --no-build --output $(PackagesOutDir)</PackArgs>
<PackArgs>$(PackArgs) $(MSBuildPassThroughPropertyList) /p:BaseOutputPath=$(IntermediateOutputForPackaging)</PackArgs>
</PropertyGroup>
<Exec Command="$(DotnetToolCommand) pack %(PackageProjects.Identity) $(PackArgs)" />
<Exec Command="$(DotnetToolCommand) pack %(PackageProjects.Identity) $(PackArgs)"
Condition="'@(PackageProjects)' != ''" />
</Target>
</Project>

Просмотреть файл

@ -4,7 +4,7 @@
<PropertyGroup>
<!-- we intentionally don't want to produce output -->
<OutputPath>unused</OutputPath>
<!-- we don't want any analyzers by ResolveNuGetPackageAssets
<!-- we don't want any analyzers by ResolveNuGetPackageAssets
null-refs when this isn't set and an analyzer is in the packages -->
<Language>unused</Language>
<NuGetTargetMoniker>.NETCoreApp,Version=v2.1</NuGetTargetMoniker>
@ -40,7 +40,7 @@
</ItemGroup>
<ItemGroup Condition="'$(NuGetRuntimeIdentifier)' == ''">
<!-- Bring in Platforms for RID graph, NETStandard.Library for build-tools,
<!-- Bring in Platforms for RID graph, NETStandard.Library for build-tools,
Targets for an empty runtime.json to reduce conflicts from 1.x packages -->
<DependenciesToPackage Include="NETStandard.Library" />
<DependenciesToPackage Include="Microsoft.NETCore.Platforms" />
@ -68,11 +68,11 @@
<_runtimePackageId>%(_runtimeCLR.NuGetPackageId)</_runtimePackageId>
<_runtimePackageVersion>%(_runtimeCLR.NuGetPackageVersion)</_runtimePackageVersion>
<_runtimePackagePath>$(PackagesDir)/$(_runtimePackageId.ToLowerInvariant())/$(_runtimePackageVersion)</_runtimePackagePath>
<_crossGenPath>$(_runtimePackagePath)/tools$(_crossDir)/crossgen$(ApplicationFileExtension)</_crossGenPath>
<_runtimeDirectory>%(_runtimeCLR.RootDir)%(_runtimeCLR.Directory)</_runtimeDirectory>
</PropertyGroup>
<PropertyGroup Condition="'@(_runtimeCoreLib)' != ''">
<_coreLibDirectory>%(_runtimeCoreLib.RootDir)%(_runtimeCoreLib.Directory)</_coreLibDirectory>
</PropertyGroup>
@ -84,7 +84,7 @@
<_jitPath>%(_runtimeJIT.FullPath)</_jitPath>
<_jitPath Condition="'$(_crossDir)' != ''">$(_jitPackagePath)/runtimes$(_crossDir)/native/$(LibraryFilePrefix)clrjit$(LibraryFileExtension)</_jitPath>
</PropertyGroup>
<PropertyGroup Condition="'@(_fxSystemRuntime)' != ''">
<_fxLibDirectory>%(_fxSystemRuntime.RootDir)%(_fxSystemRuntime.Directory)</_fxLibDirectory>
</PropertyGroup>
@ -100,7 +100,7 @@
<Target Name="GenerateHashVersionsFile" DependsOnTargets="GetPackagePaths;ResolveNuGetPackages">
<PropertyGroup>
<CoreFxVersionFile
<CoreFxVersionFile
Condition="$([System.String]::new('%(Reference.Identity)').ToLowerInvariant().Contains('system.runtime.dll'))">
$(PackagesDir)$([System.String]::new('%(Reference.NuGetPackageId)').ToLowerInvariant())/%(Reference.NuGetPackageVersion)/version.txt
</CoreFxVersionFile>
@ -135,7 +135,7 @@
<ItemGroup Condition="'$(NuGetRuntimeIdentifier)' != ''">
<!-- RID-specific: include all runtime files -->
<FilesToPackage Include="@(ReferenceCopyLocalPaths)">
<!-- ResolveNugetPackageAssets doesn't preserve the asset type (native),
<!-- ResolveNugetPackageAssets doesn't preserve the asset type (native),
calculate it by looking for native in the path -->
<IsNative Condition="$([System.String]::new('%(Identity)').ToLowerInvariant().Replace('\', '/').Contains('/native/'))">true</IsNative>
</FilesToPackage>
@ -157,13 +157,13 @@
<!-- include all doc files -->
<_docFilesToPackage Include="%(FilesToPackage.RootDir)%(FilesToPackage.Directory)**\%(FilesToPackage.FileName).xml" />
<FilesToPackage Include="@(_docFilesToPackage)">
<TargetPath>ref/$(PackageTargetFramework)/%(RecursiveDir)</TargetPath>
</FilesToPackage>
</ItemGroup>
<ItemGroup>
<ItemGroup Condition="'$(IncludeSourceFilesInPackage)' == 'true'">
<!-- pick up any src our sources directory from packages contributing files -->
<_sourcePathCandidate Include="@(FilesToPackage->'$(PackagesDir)\%(NuGetPackageId)\%(NuGetPackageVersion)\sources')" />
<_sourcePathCandidate Include="@(FilesToPackage->'$(PackagesDir)\%(NuGetPackageId)\%(NuGetPackageVersion)\src')" />
@ -215,7 +215,7 @@
</_filesToCrossGen>
<FilesToPackage Remove="@(_filesToCrossGen)" />
<_crossGenedFilesToPackage Include="@(_filesToCrossGen->'%(CrossGenedPath)')" />
<FilesToPackage Include="@(_crossGenedFilesToPackage)" />
</ItemGroup>
@ -228,7 +228,7 @@
<!-- the following path must be passed to crossgen to locate all dependencies. -->
<_crossgenPlatformDirectories Include="%(_filesToCrossGen.RootDir)%(_filesToCrossGen.Directory)" />
</ItemGroup>
<PropertyGroup>
<!-- Use PathSeparator so that we get a ':' on unix and ';' on windows
Escape the value so that the ';' doesn't result multiple lines when writing to the RSP file -->
@ -261,7 +261,7 @@
<Exec Command="$(_crossGenPath) @$(_crossGenResponseFile)" WorkingDirectory="$(_clrDirectory)" EnvironmentVariables="COMPlus_PartialNGen=0" />
</Target>
<Target Name="CreateCrossGenSymbols"
Condition="'$(CrossGenSymbolExtension)' != ''"
DependsOnTargets="CreateCrossGenImages"
@ -273,7 +273,7 @@
<_crossGenSymbolsOptionName Condition="'$(_crossGenSymbolsOptionName)' == ''">CreatePerfMap</_crossGenSymbolsOptionName>
<_crossGenSymbolsOutputDirectory>$(CrossGenSymbolsOutputPath)/%(_filesToCrossGen.TargetPath)</_crossGenSymbolsOutputDirectory>
</PropertyGroup>
<ItemGroup>
<_crossGenSymbolsArgs Include="-readytorun" />
<_crossGenSymbolsArgs Include="-platform_assemblies_paths %(_filesToCrossGen.CrossGenedDirectory)$(_pathSeparatorEscaped)$(_coreLibDirectory)" />
@ -283,9 +283,9 @@
</ItemGroup>
<WriteLinesToFile File="$(_crossGenSymbolsResponseFile)" Lines="@(_crossGenSymbolsArgs)" Overwrite="true" />
<MakeDir Directories="$(_crossGenSymbolsOutputDirectory)" />
<Exec Command="$(_crossGenPath) @$(_crossGenSymbolsResponseFile)" WorkingDirectory="$(_clrDirectory)" EnvironmentVariables="COMPlus_PartialNGen=0" />
<Touch Files="%(_filesToCrossGen.CrossGenSymbolSemaphorePath)" AlwaysCreate="true" />
@ -305,7 +305,7 @@
</FilesToPackage>
</ItemGroup>
</Target>
<Target Name="GetFilesToPackage"
DependsOnTargets="ResolveNuGetPackages;GetFilesFromPackages;PrepareForCrossGen;GetCrossGenSymbolsFiles"
Returns="@(FilesToPackage)" />
@ -320,10 +320,10 @@
<Message Importance="low" Text="%(_DependenciesToPackageWithVersion.Identity) : %(_DependenciesToPackageWithVersion.Version) : %(_DependenciesToPackageWithVersion.TargetFramework)" />
</Target>
<!-- Run crossgen -->
<Target Name="Build" DependsOnTargets="GenerateHashVersionsFile;CrossGen;GetFilesToPackage" />
<!-- remove when fixing https://github.com/dotnet/buildtools/issues/1273 -->
<Target Name="DetermineRuntimeDependencies" />
</Project>

Просмотреть файл

@ -4,7 +4,7 @@
<PropertyGroup>
<!-- we intentionally don't want to produce output -->
<OutputPath>unused</OutputPath>
<!-- we don't want any analyzers by ResolveNuGetPackageAssets
<!-- we don't want any analyzers by ResolveNuGetPackageAssets
null-refs when this isn't set and an analyzer is in the packages -->
<Language>unused</Language>
<NuGetTargetMoniker>$(UAPvNextTFMFull)</NuGetTargetMoniker>
@ -50,7 +50,7 @@
</ItemGroup>
<ItemGroup Condition="'$(NuGetRuntimeIdentifier)' == ''">
<!-- Bring in Platforms for RID graph, NETStandard.Library for build-tools,
<!-- Bring in Platforms for RID graph, NETStandard.Library for build-tools,
Targets for an empty runtime.json to reduce conflicts from 1.x packages,
and toolset. -->
<DependenciesToPackage Include="NETStandard.Library" />
@ -65,7 +65,7 @@
<ItemGroup Condition="'$(NuGetRuntimeIdentifier)' != ''">
<!-- RID-specific: include all runtime files -->
<_FilesToPackage Include="@(ReferenceCopyLocalPaths)">
<!-- ResolveNugetPackageAssets doesn't preserve the asset type (native),
<!-- ResolveNugetPackageAssets doesn't preserve the asset type (native),
calculate it by looking for native in the path -->
<IsNative Condition="$([System.String]::new('%(Identity)').ToLowerInvariant().Replace('\', '/').Contains('/native/'))">true</IsNative>
<!-- We previously shipped a clrcompression on the lib folder, so we need to flag it as native in here -->
@ -107,13 +107,13 @@
<ItemGroup Condition="'$(NuGetRuntimeIdentifier)' == ''">
<!-- include all docs files -->
<_docFilesToPackage Include="%(FilesToPackage.RootDir)%(FilesToPackage.Directory)**\%(FilesToPackage.FileName).xml" />
<FilesToPackage Include="@(_docFilesToPackage)">
<TargetPath>ref/$(PackageTargetFramework)/%(RecursiveDir)</TargetPath>
</FilesToPackage>
</ItemGroup>
<!-- simple check to make sure we don't accidentally pull an old
<!-- simple check to make sure we don't accidentally pull an old
package that should have been merged to the primary package -->
<ItemGroup>
<PermittedSystemPackages Include="System.ServiceModel.Duplex" />
@ -128,7 +128,7 @@
</ItemGroup>
<Error Text="Unexpected System package(s) @(_secondarySystemPackages)" Condition="'@(_secondarySystemPackages)' != ''" />
<ItemGroup>
<ItemGroup Condition="'$(IncludeSourceFilesInPackage)' == 'true'">
<!-- pick up any src our sources directory from packages contributing files -->
<_sourcePathCandidate Include="@(FilesToPackage->'$(PackagesDir)\%(NuGetPackageId)\%(NuGetPackageVersion)\sources')" />
<_sourcePathCandidate Include="@(FilesToPackage->'$(PackagesDir)\%(NuGetPackageId)\%(NuGetPackageVersion)\src')" />
@ -166,10 +166,10 @@
<Message Importance="low" Text="%(_DependenciesToPackageWithVersion.Identity) : %(_DependenciesToPackageWithVersion.Version) : %(_DependenciesToPackageWithVersion.TargetFramework)" />
</Target>
<!-- only calculate paths from this project, don't copy -->
<Target Name="Build" DependsOnTargets="GetFilesToPackage" />
<!-- remove when fixing https://github.com/dotnet/buildtools/issues/1273 -->
<Target Name="DetermineRuntimeDependencies" />
</Project>

Просмотреть файл

@ -13,6 +13,9 @@
<PackageTargetRuntime Condition="'$(PackageTargetRuntime)' == '' AND '$(MSBuildProjectExtension)' == '.depproj'">$(NuGetRuntimeIdentifier)</PackageTargetRuntime>
<IsLineupPackage Condition="'$(PackageTargetRuntime)' == ''">true</IsLineupPackage>
<IncludeSourceFilesInPackage Condition="'$(DotNetBuildFromSource)' == 'true'">false</IncludeSourceFilesInPackage>
<IncludeSourceFilesInPackage Condition="'$(IncludeSourceFilesInPackage)' == ''">true</IncludeSourceFilesInPackage>
</PropertyGroup>
<PropertyGroup Condition="'$(PackageTargetRuntime)' == ''">

Просмотреть файл

@ -6,6 +6,14 @@
<PrereleaseResolveNuGetPackages>true</PrereleaseResolveNuGetPackages>
</PropertyGroup>
<PropertyGroup>
<!--
If we are stabilizing set the StableVersion property for the packages.
Needs to happen in dir.targets to allow all the pkgproj's to set Version property first.
-->
<StableVersion Condition="'$(StabilizePackageVersion)' =='true'">$(Version)</StableVersion>
</PropertyGroup>
<!--
Finds symbol files and injects them into the package build.
-->
@ -37,7 +45,7 @@
</PropertyGroup>
<ItemGroup>
<File Include="$(MSBuildThisFileDirectory)../_.pdb"
<File Include="$(MSBuildThisFileDirectory)_.pdb"
Condition="'$(NeedsPlaceholderPdb)' == 'true' AND '$(PackageTargetRuntime)' != ''">
<TargetPath>runtimes/$(PackageTargetRuntime)/native</TargetPath>
<IsSymbolFile>true</IsSymbolFile>
@ -60,7 +68,7 @@
DestinationFolder="%(_SymbolsFiles.DestinationFolder)" />
</Target>
<!-- override GetPackageIdentity so that it doesn't attempt to gather
<!-- override GetPackageIdentity so that it doesn't attempt to gather
files from runtime dependencies, this prevents folks from needing
packages that don't apply to their local OS.
https://github.com/dotnet/buildtools/issues/1273 -->
@ -75,7 +83,7 @@
<!-- override AssignPkgProjPackageDependenciesTargetFramework so that
it doesn't attempt to resolve all files in order to get dependency
TargetFrameworks.
TargetFrameworks.
https://github.com/dotnet/buildtools/issues/1273 -->
<Target Name="AssignPkgProjPackageDependenciesTargetFramework" DependsOnTargets="GetPkgProjPackageDependencies">
<SplitDependenciesBySupport Condition="'$(SplitDependenciesBySupport)' == 'true'" OriginalDependencies="@(PkgProjDependency)">
@ -109,5 +117,5 @@
ItemName="Dependency" />
</MSBuild>
</Target>
</Project>
</Project>

Просмотреть файл

@ -1,18 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(PortableBuild)' != 'true' and '$(PackageRID)' == ''">
<PackageRID>$(DistroRid)</PackageRID>
<PackageRID Condition="'$(OSGroup)' == 'OSX'">osx.10.12-$(Platform)</PackageRID>
<PackageRID Condition="'$(OSGroup)' == 'Windows_NT'">win7-$(Platform)</PackageRID>
<PackageRID Condition="'$(OSGroup)' == 'Windows_NT' AND '$(Platform)' =='arm'">win8-$(Platform)</PackageRID>
<PackageRID Condition="'$(OSGroup)' == 'Windows_NT' AND '$(Platform)' =='arm64'">win10-$(Platform)</PackageRID>
</PropertyGroup>
<PropertyGroup Condition="'$(PortableBuild)' == 'true'">
<PackageRID>win-$(Platform)</PackageRID>
<PackageRID Condition="'$(OSGroup)' == 'OSX'">osx-$(Platform)</PackageRID>
<PackageRID Condition="'$(OSGroup)' == 'Linux'">linux-$(Platform)</PackageRID>
<PropertyGroup>
<PackageRID Condition="'$(PackageRID)' == ''">$(OutputRid)</PackageRID>
</PropertyGroup>
<ItemGroup>

Просмотреть файл

@ -3,6 +3,8 @@
<PropertyGroup>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
<CopyBuildOutputToPublishDirectory>false</CopyBuildOutputToPublishDirectory>
<CopyOutputSymbolsToPublishDirectory>false</CopyOutputSymbolsToPublishDirectory>
<NoWarn>2008;8021</NoWarn>
</PropertyGroup>

Просмотреть файл

@ -18,6 +18,9 @@
<PropertyGroup>
<CommonProjectArgs>$(MSBuildPassThroughPropertyList) /p:TargetFramework=$(Framework) /p:RuntimeIdentifier=$(PackageTargetRid)</CommonProjectArgs>
<SharedFrameworkIntermediatePackagesDir>$(IntermediateOutputRootPath)sharedFrameworkPublish.packages\</SharedFrameworkIntermediatePackagesDir>
<SharedFrameworkNameAndVersionRoot>$(SharedFrameworkPublishDir)shared\$(SharedFrameworkName)\$(SharedFrameworkNugetVersion)</SharedFrameworkNameAndVersionRoot>
</PropertyGroup>
<Target Name="Build" DependsOnTargets="$(BuildTargets)" />
@ -32,13 +35,15 @@
<RemoveDir Directories="$(SharedFrameworkNameAndVersionRoot)" />
<Exec Command="$(DotnetRestoreCommand) --source $(PackagesOutDir) $(CommonSharedFrameworkArgs)"
<!-- Specify a separate 'packages' directory in case we are building an already built version of Microsoft.NETCore.App and the $(PackagesDir)
already contains the same version as we are building. (ex. building source-build for `2.0.0` when `2.0.0` has already shipped.
-->
<Exec Command="$(DotnetRestoreCommandNoPackages) --source $(PackagesOutDir) --packages $(SharedFrameworkIntermediatePackagesDir) $(CommonSharedFrameworkArgs)"
WorkingDirectory="$(SharedFrameworkSourceRoot)" />
<!-- We publish to a sub folder of the PublishRoot so tools like heat and zip can generate folder structures easier. -->
<Exec Command="$(DotnetToolCommand) publish --output $(SharedFrameworkNameAndVersionRoot) $(CommonSharedFrameworkArgs)"
WorkingDirectory="$(SharedFrameworkSourceRoot)"
EnvironmentVariables="NUGET_PACKAGES=$(PackagesDir)" />
<Exec Command="$(DotnetToolCommand) publish $(NoRestoreArg) --output $(SharedFrameworkNameAndVersionRoot) $(CommonSharedFrameworkArgs)"
WorkingDirectory="$(SharedFrameworkSourceRoot)" />
<!-- Clean deps.json -->
<ChangeEntryPointLibraryName DepsFile="$(SharedFrameworkNameAndVersionRoot)/framework.deps.json" />
@ -142,13 +147,14 @@
<RemoveDir Directories="$(CoreHostLockedDir)" />
<Exec Command="$(DotnetRestoreCommand) --source $(PackagesOutDir) $(CommonLockedHostArgs)"
<!-- Specify a separate 'packages' directory in case we are building an already built version of Microsoft.NETCore.DotNetHost and the $(PackagesDir)
already contains the same version as we are building. (ex. building source-build for `2.0.0` when `2.0.0` has already shipped.
-->
<Exec Command="$(DotnetRestoreCommandNoPackages) --source $(PackagesOutDir) --packages $(SharedFrameworkIntermediatePackagesDir) $(CommonLockedHostArgs)"
WorkingDirectory="$(LockedHostSourceRoot)" />
<Exec Command="$(DotnetToolCommand) publish --output $(CoreHostLockedDir) $(CommonLockedHostArgs)"
WorkingDirectory="$(LockedHostSourceRoot)"
EnvironmentVariables="NUGET_PACKAGES=$(PackagesDir)" />
<Exec Command="$(DotnetToolCommand) publish $(NoRestoreArg) --output $(CoreHostLockedDir) $(CommonLockedHostArgs)"
WorkingDirectory="$(LockedHostSourceRoot)" />
</Target>
</Project>

Просмотреть файл

@ -98,7 +98,7 @@ namespace Microsoft.DotNet.CoreSetup.Test.HostActivation.MultilevelSDKLookup
_userSelectedMessage = $"Using dotnet SDK dll=[{_userSdkBaseDir}";
_exeSelectedMessage = $"Using dotnet SDK dll=[{_exeSdkBaseDir}";
}
[Fact]
public void SdkLookup_Global_Json_Patch_Rollup()
{
@ -349,7 +349,7 @@ namespace Microsoft.DotNet.CoreSetup.Test.HostActivation.MultilevelSDKLookup
.And
.HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "10000.0.0-dummy", _dotnetSdkDllMessageTerminator));
// Add a dummy version in the exe dir
// Add a dummy version in the user dir
AddAvailableSdkVersions(_exeSdkBaseDir, "10000.0.0");
// Specified CLI version: none

Просмотреть файл

@ -90,7 +90,7 @@
</PropertyGroup>
<Exec Command="$(DotnetToolCommand) test $(TestArgs) --logger &quot;trx;LogFileName=$(TestResultsXml)&quot;"
WorkingDirectory="$(TestWorkingDirectory)"
EnvironmentVariables="NUGET_PACKAGES=$(PackagesDir);TEST_ARTIFACTS=$(SystemPathTestsOutputDir);TEST_TARGETRID=$(TestTargetRid);BUILDRID=$(TargetRid);BUILD_ARCHITECTURE=$(TargetArchitecture);BUILD_CONFIGURATION=$(ConfigurationGroup);MNA_VERSION=$(ProductVersion);DOTNET_SDK_PATH=$(DotnetCliPath)"
EnvironmentVariables="NUGET_PACKAGES=$(PackagesDir);TEST_ARTIFACTS=$(SystemPathTestsOutputDir);TEST_TARGETRID=$(TestTargetRid);BUILDRID=$(OutputRid);BUILD_ARCHITECTURE=$(TargetArchitecture);BUILD_CONFIGURATION=$(ConfigurationGroup);MNA_VERSION=$(ProductVersion);DOTNET_SDK_PATH=$(DotnetCliPath)"
Condition="'$(TestProjectFilename)' != 'HostActivationTests' or '$(IsCrossArch)' != 'true'"
ContinueOnError="true"
IgnoreStandardErrorWarningFormat="true"

9
tools-local/dir.props Normal file
Просмотреть файл

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\dir.props" />
<PropertyGroup>
<BuildCustomTasksForDesktop Condition="'$(MSBuildRuntimeType)' != 'Core'">true</BuildCustomTasksForDesktop>
</PropertyGroup>
</Project>

Просмотреть файл

@ -213,7 +213,7 @@ function cross_build_core_setup_with_docker {
fi
# Cross building core-setup with rootfs in Docker
__buildCmd="./build.sh --configuration $__buildConfig --env-vars DISABLE_CROSSGEN=1,TARGETPLATFORM=$__buildArch,TARGETRID=$__runtimeOS-$__buildArch,CROSS=1,ROOTFS_DIR=$__rootfsDir"
__buildCmd="./build.sh --configuration $__buildConfig --env-vars DISABLE_CROSSGEN=1,TARGETPLATFORM=$__buildArch,OUTPUTRID=$__runtimeOS-$__buildArch,CROSS=1,ROOTFS_DIR=$__rootfsDir"
$__dockerCmd $__buildCmd
}

Просмотреть файл

@ -0,0 +1,84 @@
#!/usr/bin/env bash
#
# Copyright (c) .NET Foundation and contributors. All rights reserved.
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
#
set -e
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
cd "$DIR/.."
while [[ $# > 0 ]]; do
key=$1
case $key in
-t|--tag)
DOCKER_TAG=$2
shift
;;
-d|--dockerfile)
DOCKERFILE=$2
shift
;;
-h|-?|--help)
echo "Usage: $0 [-d|--dockerfile <Dockerfile>] [-t|--tag <Tag>] <Command>"
echo ""
echo "Options:"
echo " <Dockerfile> The path to the folder that contains a Dockerfile to use to create the build container"
echo " <Tag> The name of docker image tag"
exit 0
;;
*)
break # the first non-switch we get ends parsing
;;
esac
shift
done
# Executes a command and retries if it fails.
# NOTE: This function is the exact copy from init-docker.sh.
# Reason for not invoking init.docker.sh directly is since that script
# also performs cleanup, which we do not want in this case.
execute() {
local count=0
local retries=5
local waitFactor=6
until "$@"; do
local exit=$?
count=$(( $count + 1 ))
if [ $count -lt $retries ]; then
local wait=$(( waitFactor ** (( count - 1 )) ))
echo "Retry $count/$retries exited $exit, retrying in $wait seconds..."
sleep $wait
else
say_err "Retry $count/$retries exited $exit, no more retries left."
return $exit
fi
done
return 0
}
# Build the docker container (will be fast if it is already built)
echo "Building Docker Container using Dockerfile: $DOCKERFILE"
# Get the name of Docker image.
image=$(grep -i "^FROM " "$DOCKERFILE/Dockerfile" | awk '{ print $2 }')
# Explicitly pull the base image with retry logic.
# This eliminates intermittent failures during docker build caused by failing to retrieve the base image.
if [ ! -z "$image" ]; then
echo "Pulling Docker image $image"
execute docker pull $image
fi
docker build --build-arg USER_ID=$(id -u) -t $DOCKER_TAG $DOCKERFILE

Просмотреть файл

@ -87,44 +87,8 @@ fi
# VSO
[ ! -z "$BUILD_BUILDID" ] && DOTNET_BUILD_CONTAINER_NAME="${BUILD_BUILDID}-${BUILD_BUILDNUMBER}"
# Executes a command and retries if it fails.
# NOTE: This function is the exact copy from init-docker.sh.
# Reason for not invoking init.docker.sh directly is since that script
# also performs cleanup, which we do not want in this case.
execute() {
local count=0
local retries=5
local waitFactor=6
until "$@"; do
local exit=$?
count=$(( $count + 1 ))
if [ $count -lt $retries ]; then
local wait=$(( waitFactor ** (( count - 1 )) ))
echo "Retry $count/$retries exited $exit, retrying in $wait seconds..."
sleep $wait
else
say_err "Retry $count/$retries exited $exit, no more retries left."
return $exit
fi
done
return 0
}
# Build the docker container (will be fast if it is already built)
echo "Building Docker Container using Dockerfile: $DOCKERFILE"
# Get the name of Docker image.
image=$(grep -i "^FROM " "$DOCKERFILE/Dockerfile" | awk '{ print $2 }')
# Explicitly pull the base image with retry logic.
# This eliminates intermittent failures during docker build caused by failing to retrieve the base image.
if [ ! -z "$image" ]; then
echo "Pulling Docker image $image"
execute docker pull $image
fi
docker build --build-arg USER_ID=$(id -u) -t $DOTNET_BUILD_CONTAINER_TAG $DOCKERFILE
#Build the docker image
"$DIR/dockerbuild.sh" -t $DOTNET_BUILD_CONTAINER_TAG -d $DOCKERFILE
# Run the build in the container
echo "Launching build in Docker Container"

Просмотреть файл

@ -0,0 +1,320 @@
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System;
using System.Collections.Generic;
using Microsoft.Build.Utilities;
using Microsoft.Build.Framework;
using System.IO;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
namespace Microsoft.DotNet.Build.Tasks
{
/// <summary>
/// This task prepares the command line parameters for running a RPM build using FPM tool and also updates the copyright and changelog file tokens.
/// If parses various values from the config json by first reading it into a model and then builds the required string for parameters and passes it back.
///
/// </summary>
public class BuildFPMToolPreReqs : BuildTask
{
[Required]
public string InputDir { get; set; }
[Required]
public string OutputDir { get; set; }
[Required]
public string PackageVersion { get; set; }
[Required]
public string ConfigJsonFile { get; set; }
[Output]
public string FPMParameters { get; set; }
public override bool Execute()
{
try
{
if (!File.Exists(ConfigJsonFile))
{
throw new FileNotFoundException($"Expected file {ConfigJsonFile} was not found.");
}
// Open the Config Json and read the values into the model
TextReader projectFileReader = File.OpenText(ConfigJsonFile);
if (projectFileReader != null)
{
string jsonFileText = projectFileReader.ReadToEnd();
ConfigJson configJson = JsonConvert.DeserializeObject<ConfigJson>(jsonFileText);
// Update the Changelog and Copyright files by replacing tokens with values from config json
UpdateChangelog(configJson, PackageVersion);
UpdateCopyRight(configJson);
// Build the full list of parameters
FPMParameters = BuildCmdParameters(configJson, PackageVersion);
Log.LogMessage(MessageImportance.Normal, "Generated RPM paramters: " + FPMParameters);
}
else
{
throw new IOException($"Could not open the file {ConfigJsonFile} for reading.");
}
}
catch (Exception e)
{
Log.LogError("Exception while processing RPM paramters: " + e.Message);
}
return !Log.HasLoggedErrors;
}
// Update the tokens in the changelog file from the config Json
private void UpdateChangelog(ConfigJson configJson, string package_version)
{
try
{
string changelogFile = Path.Combine(InputDir, "templates", "changelog");
if (!File.Exists(changelogFile))
{
throw new FileNotFoundException($"Expected file {changelogFile} was not found.");
}
string str = File.ReadAllText(changelogFile);
str = str.Replace("{PACKAGE_NAME}", configJson.Package_Name);
str = str.Replace("{PACKAGE_VERSION}", package_version);
str = str.Replace("{PACKAGE_REVISION}", configJson.Release.Package_Revision);
str = str.Replace("{URGENCY}", configJson.Release.Urgency);
str = str.Replace("{CHANGELOG_MESSAGE}", configJson.Release.Changelog_Message);
str = str.Replace("{MAINTAINER_NAME}", configJson.Maintainer_Name);
str = str.Replace("{MAINTAINER_EMAIL}", configJson.Maintainer_Email);
// The date format needs to be like Wed May 17 2017
str = str.Replace("{DATE}", DateTime.UtcNow.ToString("ddd MMM dd yyyy"));
File.WriteAllText(changelogFile, str);
}
catch (Exception e)
{
Log.LogError("Exception while updating the changelog file: " + e.Message);
}
}
public void UpdateCopyRight(ConfigJson configJson)
{
try
{
// Update the tokens in the copyright file from the config Json
string copyrightFile = Path.Combine(InputDir, "templates", "copyright");
if (!File.Exists(copyrightFile))
{
throw new FileNotFoundException($"Expected file {copyrightFile} was not found.");
}
string str = File.ReadAllText(copyrightFile);
str = str.Replace("{COPYRIGHT_TEXT}", configJson.CopyRight);
str = str.Replace("{LICENSE_NAME}", configJson.License.Type);
str = str.Replace("{LICENSE_NAME}", configJson.License.Type);
str = str.Replace("{LICENSE_TEXT}", configJson.License.Full_Text);
File.WriteAllText(copyrightFile, str);
}
catch (Exception e)
{
Log.LogError("Exception while updating the copyright file: " + e.Message);
}
}
private string BuildCmdParameters(ConfigJson configJson, string package_version)
{
// Parameter list that needs to be passed to FPM tool:
// -s : is the input source type(dir) --Static
// -t : is the type of package(rpm) --Static
// -n : is for the name of the package --JSON
// -v : is the version to give to the package --ARG
// -a : architecture --JSON
// -d : is for all dependent packages. This can be used multiple times to specify the dependencies of the package. --JSON
// --rpm-os : the operating system to target this rpm --Static
// --rpm-changelog : the changelog from FILEPATH contents --ARG
// --rpm-summary : it is the RPM summary that shows in the Title --JSON
// --description : it is the description for the package --JSON
// -p : The actual package name (with path) for your package. --ARG+JSON
// --conflicts : Other packages/versions this package conflicts with provided as CSV --JSON
// --directories : Recursively add directories as being owned by the package. --JSON
// --after-install : FILEPATH to the script to be run after install of the package --JSON
// --after-remove : FILEPATH to the script to be run after package removal --JSON
// --license : the licensing name for the package. This will include the license type in the meta-data for the package, but will not include the associated license file within the package itself. --JSON
// --iteration : the iteration to give to the package. This comes from the package_revision --JSON
// --url : url for this package. --JSON
// --verbose : Set verbose output for FPM tool --Static
// <All folder mappings> : Add all the folder mappings for packge_root, docs, man pages --Static
var parameters = new List<string>();
parameters.Add("-s dir");
parameters.Add("-t rpm");
parameters.Add(string.Concat("-n ", configJson.Package_Name));
parameters.Add(string.Concat("-v ", package_version));
parameters.Add(string.Concat("-a ", configJson.Control.Architecture));
// Build the list of dependencies as -d <dep1> -d <dep2>
if (configJson.Rpm_Dependencies != null)
{
foreach (RpmDependency rpmdep in configJson.Rpm_Dependencies)
{
string dependency = "";
if (rpmdep.Package_Name != "")
{
// If no version is specified then the dependency is just the package without >= check
if (rpmdep.Package_Version == "")
{
dependency = rpmdep.Package_Name;
}
else
{
dependency = string.Concat(rpmdep.Package_Name, " >= ", rpmdep.Package_Version);
}
}
if (dependency != "") parameters.Add(string.Concat("-d ", EscapeArg(dependency)));
}
}
// Build the list of owned directories
if (configJson.Directories != null)
{
foreach (string dir in configJson.Directories)
{
if (dir != "")
{
parameters.Add(string.Concat("--directories ", EscapeArg(dir)));
}
}
}
parameters.Add("--rpm-os linux");
parameters.Add(string.Concat("--rpm-changelog ", EscapeArg(Path.Combine(InputDir, "templates", "changelog")))); // Changelog File
parameters.Add(string.Concat("--rpm-summary ", EscapeArg(configJson.Short_Description)));
parameters.Add(string.Concat("--description ", EscapeArg(configJson.Long_Description)));
parameters.Add(string.Concat("--maintainer ", EscapeArg(configJson.Maintainer_Name + " <" + configJson.Maintainer_Email + ">")));
parameters.Add(string.Concat("--vendor ", EscapeArg(configJson.Vendor)));
parameters.Add(string.Concat("-p ", Path.Combine(OutputDir, configJson.Package_Name + ".rpm")));
if (configJson.Package_Conflicts != null) parameters.Add(string.Concat("--conflicts ", EscapeArg(string.Join(",", configJson.Package_Conflicts))));
if (configJson.After_Install_Source != null) parameters.Add(string.Concat("--after-install ", Path.Combine(InputDir, EscapeArg(configJson.After_Install_Source))));
if (configJson.After_Remove_Source != null) parameters.Add(string.Concat("--after-remove ", Path.Combine(InputDir, EscapeArg(configJson.After_Remove_Source))));
parameters.Add(string.Concat("--license ", EscapeArg(configJson.License.Type)));
parameters.Add(string.Concat("--iteration ", configJson.Release.Package_Revision));
parameters.Add(string.Concat("--url ", "\"", EscapeArg(configJson.Homepage), "\""));
parameters.Add("--verbose");
// Map all the payload directories as they need to install on the system
if (configJson.Install_Root != null) parameters.Add(string.Concat(Path.Combine(InputDir, "package_root/="), configJson.Install_Root)); // Package Files
if (configJson.Install_Man != null) parameters.Add(string.Concat(Path.Combine(InputDir, "docs", "host/="), configJson.Install_Man)); // Man Pages
if (configJson.Install_Doc != null) parameters.Add(string.Concat(Path.Combine(InputDir, "templates", "copyright="), configJson.Install_Doc)); // CopyRight File
return string.Join(" ", parameters);
}
private string EscapeArg(string arg)
{
var sb = new StringBuilder();
bool quoted = ShouldSurroundWithQuotes(arg);
if (quoted) sb.Append("\"");
for (int i = 0; i < arg.Length; ++i)
{
var backslashCount = 0;
// Consume All Backslashes
while (i < arg.Length && arg[i] == '\\')
{
backslashCount++;
i++;
}
// Escape any backslashes at the end of the arg
// This ensures the outside quote is interpreted as
// an argument delimiter
if (i == arg.Length)
{
sb.Append('\\', 2 * backslashCount);
}
// Escape any preceding backslashes and the quote
else if (arg[i] == '"')
{
sb.Append('\\', (2 * backslashCount) + 1);
sb.Append('"');
}
// Output any consumed backslashes and the character
else
{
sb.Append('\\', backslashCount);
sb.Append(arg[i]);
}
}
if (quoted) sb.Append("\"");
return sb.ToString();
}
private bool ShouldSurroundWithQuotes(string argument)
{
// Don't quote already quoted strings
if (argument.StartsWith("\"", StringComparison.Ordinal) &&
argument.EndsWith("\"", StringComparison.Ordinal))
{
return false;
}
// Only quote if whitespace exists in the string
if (argument.Contains(" ") || argument.Contains("\t") || argument.Contains("\n"))
{
return true;
}
return false;
}
}
/// <summary>
/// Model classes for reading and storing the JSON.
/// </summary>
public class ConfigJson
{
public string Maintainer_Name { get; set; }
public string Maintainer_Email { get; set; }
public string Vendor { get; set; }
public string Package_Name { get; set; }
public string Install_Root { get; set; }
public string Install_Doc { get; set; }
public string Install_Man { get; set; }
public string Short_Description { get; set; }
public string Long_Description { get; set; }
public string Homepage { get; set; }
public string CopyRight { get; set; }
public Release Release { get; set; }
public Control Control { get; set; }
public License License { get; set; }
public List<RpmDependency> Rpm_Dependencies { get; set; }
public List<string> Package_Conflicts { get; set; }
public List<string> Directories { get; set; }
public string After_Install_Source { get; set; }
public string After_Remove_Source { get; set; }
}
public class Release
{
public string Package_Version { get; set; }
public string Package_Revision { get; set; }
public string Urgency { get; set; }
public string Changelog_Message { get; set; }
}
public class Control
{
public string Priority { get; set; }
public string Section { get; set; }
public string Architecture { get; set; }
}
public class License
{
public string Type { get; set; }
public string Full_Text { get; set; }
}
public class RpmDependency
{
public string Package_Name { get; set; }
public string Package_Version { get; set; }
}
}

Просмотреть файл

@ -5,7 +5,8 @@
<Project Include="$(MSBuildThisFileDirectory)$(MSBuildProjectName).csproj">
<AdditionalProperties>TargetGroup=netstandard1.3</AdditionalProperties>
</Project>
<Project Include="$(MSBuildThisFileDirectory)$(MSBuildProjectName).csproj">
<Project Include="$(MSBuildThisFileDirectory)$(MSBuildProjectName).csproj"
Condition="'$(BuildCustomTasksForDesktop)' == 'true'">
<AdditionalProperties>TargetGroup=net45</AdditionalProperties>
</Project>
</ItemGroup>

Просмотреть файл

@ -37,18 +37,10 @@
<Reference Include="$(BuildToolsTaskCoreDir)Microsoft.DotNet.Build.CloudTestTasks.dll" />
<PackageReference Include="Microsoft.Build">
<Version>0.1.0-preview-00022</Version>
</PackageReference>
<PackageReference Include="Microsoft.Build.Framework">
<Version>0.1.0-preview-00022</Version>
</PackageReference>
<PackageReference Include="Microsoft.Build.Tasks.Core">
<Version>0.1.0-preview-00022</Version>
</PackageReference>
<PackageReference Include="Microsoft.Build.Utilities.Core">
<Version>0.1.0-preview-00022</Version>
</PackageReference>
<PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildPackageVersion)" />
<PackageReference Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildFrameworkPackageVersion)" />
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCorePackageVersion)" />
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildUtilitiesCorePackageVersion)" />
<PackageReference Include="Microsoft.Tpl.Dataflow">
<Version>4.5.24</Version>
<IncludeAssets>None</IncludeAssets>