dotnet-installer/src/redist/redist.csproj

347 lines
15 KiB
XML
Raw Normal View History

<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.tasks" />
<Import Project="$(RepoRoot)/build/compile/LzmaArchive.targets" />
<Import Project="$(RepoRoot)/build/MSBuildExtensions.targets" />
<PropertyGroup>
<VersionPrefix>$(CliVersionPrefix)</VersionPrefix>
2017-01-26 03:19:44 +00:00
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<CopyBuildOutputToPublishDirectory>false</CopyBuildOutputToPublishDirectory>
<AssetTargetFallback>$(AssetTargetFallback);dotnet5.4</AssetTargetFallback>
2017-02-27 19:06:44 +00:00
<PublishDir>$(SdkOutputDirectory)</PublishDir>
<VersionSuffix>$(CommitCount)</VersionSuffix>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETCore.App" Version="$(CLI_SharedFrameworkVersion)" />
<PackageReference Include="NuGet.Build.Tasks" Version="$(CLI_NuGet_Version)" />
<PackageReference Include="Microsoft.TestPlatform.CLI" Version="$(CLI_TestPlatform_Version)" />
<PackageReference Include="Microsoft.TestPlatform.Build" Version="$(CLI_TestPlatform_Version)" />
<PackageReference Include="NuGet.ProjectModel" Version="$(CLI_NuGet_Version)" />
2017-10-02 14:56:47 +00:00
<PackageReference Include="Microsoft.NETCore.Compilers" Version="$(CLI_Roslyn_Version)">
<ExcludeAssets>All</ExcludeAssets>
</PackageReference>
<PackageReference Include="CliDeps.Satellites.Roslyn" Version="$(CLI_Roslyn_Satellites_Version)">
<ExcludeAssets>All</ExcludeAssets>
</PackageReference>
</ItemGroup>
2017-01-26 03:19:44 +00:00
<ItemGroup>
<ProjectReference Include="..\dotnet\dotnet.csproj" />
<ProjectReference Include="..\Microsoft.DotNet.TestFramework\Microsoft.DotNet.TestFramework.csproj" />
<ProjectReference Include="..\tool_msbuild\tool_msbuild.csproj" />
<ProjectReference Include="..\tool_nuget\tool_nuget.csproj" />
</ItemGroup>
<ItemGroup>
<Content Include="minimumMSBuildVersion">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
</ItemGroup>
<Target Name="PublishAspNetRuntimePackageStore"
AfterTargets="CrossgenPublishDir">
<ItemGroup>
<AspNetRuntimePackageStore Remove="*" />
<AspNetRuntimePackageStore Include="$(AspNetRuntimePackageStorePublishDirectory)/**/*" />
</ItemGroup>
<Copy SourceFiles="@(AspNetRuntimePackageStore)"
DestinationFiles="@(AspNetRuntimePackageStore->'$(OutputDirectory)/%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<Target Name="PublishSharedFramework"
BeforeTargets="Publish">
<ItemGroup>
<SharedFramework Remove="*" />
<SharedFramework Include="$(SharedFrameworkPublishDirectory)/**/*" />
</ItemGroup>
<Copy SourceFiles="@(SharedFramework)"
2017-02-27 19:06:44 +00:00
DestinationFiles="@(SharedFramework->'$(OutputDirectory)/%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<Target Name="PublishVersionFile"
BeforeTargets="Publish">
2017-02-28 08:38:27 +00:00
<WriteLinesToFile File="$(PublishDir)/.version"
Lines="$(CommitHash);$(SdkVersion);$(Rid)"
Overwrite="true" />
</Target>
<Target Name="PublishRoslyn"
BeforeTargets="Publish">
2017-10-02 14:56:47 +00:00
<ItemGroup>
<RoslynBits Include="$(NuGetPackagesDir)/microsoft.netcore.compilers/$(CLI_Roslyn_Version)/tools/**/*" />
<RoslynSatelliteBits Include="$(NuGetPackagesDir)/clideps.satellites.roslyn/$(CLI_Roslyn_Satellites_Version)/lib/netstandard1.0/**/*" />
</ItemGroup>
<Copy SourceFiles="@(RoslynBits)" DestinationFiles="@(RoslynBits->'$(RoslynDirectory)/%(RecursiveDir)%(Filename)%(Extension)')" />
<Copy SourceFiles="@(RoslynSatelliteBits)" DestinationFiles="@(RoslynSatelliteBits->'$(RoslynDirectory)/bincore/%(RecursiveDir)%(Filename)%(Extension)')" />
<ItemGroup>
<RetargetRuntimeConfigPaths Include="$(RoslynDirectory)/bincore/csc.runtimeconfig.json" />
<RetargetRuntimeConfigPaths Include="$(RoslynDirectory)/bincore/vbc.runtimeconfig.json" />
</ItemGroup>
<PropertyGroup>
<ReplacementPattern>"version": ".*"</ReplacementPattern>
<ReplacementString>"version": "$(CLI_SharedFrameworkVersion)"</ReplacementString>
</PropertyGroup>
<ReplaceFileContents
InputFile="%(RetargetRuntimeConfigPaths.Identity)"
DestinationFile="%(RetargetRuntimeConfigPaths.Identity)"
ReplacementPatterns="$(ReplacementPattern)"
ReplacementStrings="$(ReplacementString)" />
</Target>
<Target Name="PublishFSharp"
BeforeTargets="Publish">
<DotNetPublish ToolPath="$(Stage0Directory)"
Configuration="$(Configuration)"
ProjectPath="$(SrcDirectory)/tool_fsharp/tool_fsc.csproj" />
</Target>
<Target Name="GenerateCliRuntimeConfigurationFiles"
AfterTargets="Publish">
<RemoveAssetFromDepsPackages DepsFile="$(PublishDir)/$(TargetName).deps.json"
SectionName="runtime"
AssetPath="%(BundledToolProjects.Identity).dll" />
<Copy SourceFiles="$(PublishDir)/$(TargetName).deps.json"
2017-02-28 08:38:27 +00:00
DestinationFiles="$(PublishDir)/%(BundledTools.Identity).deps.json" />
<Copy SourceFiles="$(PublishDir)/$(TargetName).runtimeconfig.json"
2017-02-28 08:38:27 +00:00
DestinationFiles="$(PublishDir)/%(BundledTools.Identity).runtimeconfig.json" />
<Delete Files="$(PublishDir)/$(TargetName).deps.json;
$(PublishDir)/$(TargetName).runtimeconfig.json;
$(PublishDir)/%(BundledToolProjects.Identity).dll" />
<ChangeEntryPointLibraryName
2017-02-28 08:38:27 +00:00
DepsFile="$(PublishDir)/%(BundledTools.Identity).deps.json"
NewName="%(BundledTools.Identity).deps.json" />
</Target>
<Target Name="PublishMSBuildExtensions"
DependsOnTargets="GenerateMSBuildExtensions"
2017-02-23 18:25:28 +00:00
AfterTargets="Publish"
BeforeTargets="GenerateCliRuntimeConfigurationFiles">
<ItemGroup>
<MSBuildExtensionsContent Update="@(MSBuildExtensionsContent)">
<DestinationPath Condition="'%(MSBuildExtensionsContent.DestinationPath)' == ''">$(PublishDir)/%(MSBuildExtensionsContent.DeploymentSubpath)%(RecursiveDir)%(Filename)%(Extension)</DestinationPath>
</MSBuildExtensionsContent>
</ItemGroup>
<Copy SourceFiles="@(MSBuildExtensionsContent)"
DestinationFiles="%(MSBuildExtensionsContent.DestinationPath)" />
2017-02-23 10:46:05 +00:00
2017-02-27 23:40:11 +00:00
<PropertyGroup>
2017-02-28 02:48:05 +00:00
<MSBuildTargetsDirectory>$(PublishDir)/runtimes/any/native</MSBuildTargetsDirectory>
2017-02-27 23:40:11 +00:00
</PropertyGroup>
2017-02-23 10:46:05 +00:00
<ItemGroup>
<NuPkgContentForMSBuildExtensions Include="$(MSBuildTargetsDirectory)/**/*.targets;
$(MSBuildTargetsDirectory)/**/*.props;
$(MSBuildTargetsDirectory)/**/*.overridetasks;
$(MSBuildTargetsDirectory)/**/*.tasks" />
<NuPkgContentForMSBuildExtensionsRelativePaths Include="@(NuPkgContentForMSBuildExtensions->'runtimes/any/native/%(RecursiveDir)%(Filename)%(Extension)')" />
2017-02-23 10:46:05 +00:00
</ItemGroup>
2017-02-28 02:19:06 +00:00
<Move SourceFiles="@(NuPkgContentForMSBuildExtensions)"
2017-02-28 02:48:05 +00:00
DestinationFiles="@(NuPkgContentForMSBuildExtensions->'$(PublishDir)/%(RecursiveDir)%(Filename)%(Extension)')" />
2017-02-28 02:19:06 +00:00
2017-02-23 18:25:28 +00:00
<RemoveAssetFromDepsPackages DepsFile="$(PublishDir)/$(TargetName).deps.json"
2017-02-27 18:20:01 +00:00
SectionName="runtimeTargets"
AssetPath="%(NuPkgContentForMSBuildExtensionsRelativePaths.Identity)" />
</Target>
2017-02-28 08:38:27 +00:00
<!-- The msdia140typelib_clr0200.dll file is not MIT licensed (and it only used on Windows). Remove it, so
we can MIT license the published dotnet -->
<Target Name="RemoveMSDiaTypeLib"
AfterTargets="Publish"
Condition="'$(OSName)' != 'win'">
<Delete Files="$(PublishDir)/TestHost/msdia140typelib_clr0200.dll" />
</Target>
<Target Name="PublishSdks"
AfterTargets="Publish">
<ItemGroup>
<SdksToBundle Include="$(RepoRoot)/build/RestoreDependency.proj">
<Properties>
CLIBuildDll=$(CLIBuildDll);
NuGetPackagesDir=$(NuGetPackagesDir);
SdkLayoutDirectory=$(SdkOutputDirectory)/Sdks/%(BundledSdk.Identity);
DependencyPackageName=%(BundledSdk.Identity);
DependencyPackageVersion=%(BundledSdk.Version);
2017-03-01 08:46:13 +00:00
Stage0Directory=$(Stage0Directory)
</Properties>
</SdksToBundle>
</ItemGroup>
<MSBuild
BuildInParallel="False"
Projects="@(SdksToBundle)">
</MSBuild>
</Target>
<Target Name="PublishTemplates"
AfterTargets="Publish">
<ItemGroup>
<TemplatesToBundle Include="$(RepoRoot)/build/BundledTemplates.proj">
<Properties>
TemplateLayoutDirectory=$(SdkOutputDirectory)/Templates;
TemplatePackageName=%(BundledTemplate.Identity);
TemplatePackageVersion=%(BundledTemplate.Version);
2017-03-01 08:46:13 +00:00
Stage0Directory=$(Stage0Directory)
</Properties>
</TemplatesToBundle>
</ItemGroup>
<MSBuild
BuildInParallel="False"
Projects="@(TemplatesToBundle)">
</MSBuild>
</Target>
<Target Name="PublishLzmaArchive"
2017-04-28 05:28:32 +00:00
Condition="'$(CLIBUILD_SKIP_LZMA)' != 'true'"
DependsOnTargets="GetNuGetPackagesArchive"
AfterTargets="Publish">
</Target>
2017-02-28 08:38:27 +00:00
<Target Name="CrossgenPublishDir"
Condition=" '$(DISABLE_CROSSGEN)' == '' "
AfterTargets="PublishMSBuildExtensions">
<ItemGroup>
2017-10-02 14:56:47 +00:00
<RoslynFiles Include="$(PublishDir)Roslyn\bincore\**\*" />
<FSharpFiles Include="$(PublishDir)FSharp\**\*" Exclude="$(PublishDir)FSharp\FSharp.Build.dll" />
<RemainingFiles Include="$(PublishDir)**\*" Exclude="@(RoslynFiles);@(FSharpFiles)" />
2017-02-28 08:38:27 +00:00
<!-- Removing Full CLR built TestHost assemblies from getting Crossgen as it is throwing error -->
2017-10-02 14:56:47 +00:00
<RemainingFiles Remove="$(PublishDir)TestHost*\**\*" />
<RemainingFiles Remove="$(PublishDir)Sdks\**\*" />
<!-- Don't try to CrossGen .NET Framework support assemblies for .NET Standard -->
2017-10-02 14:56:47 +00:00
<RemainingFiles Remove="$(PublishDir)Microsoft\Microsoft.NET.Build.Extensions\net*\**\*" />
<!-- Don't try to CrossGen tasks and supporting DLLs compiled for .NET Framework -->
2017-10-02 14:56:47 +00:00
<RemainingFiles Remove="$(PublishDir)Microsoft\Microsoft.NET.Build.Extensions\tools\net*\**\*" />
2017-02-28 08:38:27 +00:00
</ItemGroup>
2017-10-02 14:56:47 +00:00
<AddMetadataIsPE Items="@(RoslynFiles)">
<Output TaskParameter="ResultItems" ItemName="RoslynFilesWithPEMarker" />
</AddMetadataIsPE>
<AddMetadataIsPE Items="@(FSharpFiles)">
<Output TaskParameter="ResultItems" ItemName="FSharpFilesWithPEMarker" />
</AddMetadataIsPE>
<AddMetadataIsPE Items="@(RemainingFiles)">
<Output TaskParameter="ResultItems" ItemName="RemainingFilesWithPEMarker" />
2017-02-28 08:38:27 +00:00
</AddMetadataIsPE>
<ItemGroup>
2017-10-02 14:56:47 +00:00
<RoslynTargets Include="%(RoslynFilesWithPEMarker.FullPath)" Condition=" '%(RoslynFilesWithPEMarker.IsPE)' == 'True' " />
<FSharpTargets Include="%(FSharpFilesWithPEMarker.FullPath)" Condition=" '%(FSharpFilesWithPEMarker.IsPE)' == 'True' " />
<RemainingTargets Include="%(RemainingFilesWithPEMarker.FullPath)" Condition=" '%(RemainingFilesWithPEMarker.IsPE)' == 'True' " />
<RoslynFolders Include="@(RoslynTargets-&gt;DirectoryName()-&gt;Distinct())" />
<FSharpFolders Include="@(FSharpTargets-&gt;DirectoryName()-&gt;Distinct())" />
<RemainingFolders Include="@(RemainingTargets-&gt;DirectoryName()-&gt;Distinct())" />
2017-02-28 08:38:27 +00:00
2017-10-02 14:56:47 +00:00
<!-- FSharp.Build.dll causes the FSharp folder to be included. Remove it, as we don't want other FSharp dlls being included in the crossgen. -->
<RemainingFolders Remove="$(PublishDir)FSharp\**\*" />
</ItemGroup>
2017-02-28 08:38:27 +00:00
<!-- Ensure crossgen tool is executable. See https://github.com/NuGet/Home/issues/4424 -->
<Chmod Condition=" '$(OSName)' != 'win' "
2017-03-01 02:16:51 +00:00
Glob="$(CrossgenPath)"
Mode="u+x" />
2017-02-28 08:38:27 +00:00
2017-10-02 14:56:47 +00:00
<Crossgen
SourceAssembly="%(RoslynTargets.FullPath)"
DestinationPath="%(RoslynTargets.FullPath)"
JITPath="$(LibCLRJitPath)"
CrossgenPath="$(CrossgenPath)"
ReadyToRun="True"
PlatformAssemblyPaths="@(PlatformAssemblies);@(RoslynFolders);$(SharedFrameworkNameVersionPath)" />
<Crossgen
SourceAssembly="%(FSharpTargets.FullPath)"
DestinationPath="%(FSharpTargets.FullPath)"
JITPath="$(LibCLRJitPath)"
CrossgenPath="$(CrossgenPath)"
ReadyToRun="True"
PlatformAssemblyPaths="@(PlatformAssemblies);@(FSharpFolders);$(SharedFrameworkNameVersionPath)" />
<Crossgen
SourceAssembly="%(RemainingTargets.FullPath)"
DestinationPath="%(RemainingTargets.FullPath)"
JITPath="$(LibCLRJitPath)"
CrossgenPath="$(CrossgenPath)"
ReadyToRun="True"
PlatformAssemblyPaths="@(PlatformAssemblies);@(RemainingFolders);$(SharedFrameworkNameVersionPath)" />
2017-02-28 08:38:27 +00:00
</Target>
2017-03-01 02:16:51 +00:00
2017-03-01 06:52:08 +00:00
<Target Name="ChmodPublishDir"
AfterTargets="CrossgenPublishDir"
2017-03-01 06:52:08 +00:00
Condition=" '$(OSName)' != 'win' ">
<Exec Command="find $(SdkOutputDirectory) -type d -exec chmod 755 {} \;" />
<Exec Command="find $(SdkOutputDirectory) -type f -exec chmod 644 {} \;" />
2017-06-02 03:14:09 +00:00
<Chmod Mode="755" Glob="$(SdkOutputDirectory)/FSharp/RunFsc.sh" />
2017-03-01 06:52:08 +00:00
</Target>
<Target Name="CreateSymbolsDirectory"
AfterTargets="CrossgenPublishDir">
<ItemGroup>
<_AllSdkFiles Include="$(PublishDir)/**/*" />
</ItemGroup>
<Copy SourceFiles="@(_AllSdkFiles)"
2017-03-01 09:24:07 +00:00
DestinationFiles="@(_AllSdkFiles->'$(SymbolsDirectory)/sdk/%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<Target Name="RemovePdbsFromPublishDir"
AfterTargets="CreateSymbolsDirectory">
<ItemGroup>
2017-03-01 06:52:08 +00:00
<PdbsToClean Include="$(PublishDir)/**/*.pdb" />
</ItemGroup>
<Delete Files="@(PdbsToClean)" />
</Target>
2017-04-08 07:29:20 +00:00
<Target Name="PublishStage2WithBackwardsCompatibleRuntimes"
AfterTargets="PublishLzmaArchive;">
<ItemGroup>
2017-04-08 07:29:20 +00:00
<BackwardsCompatibleSharedFrameworks Remove="*" />
<BackwardsCompatibleSharedFrameworks Include="$(BackwardsCompatibleSharedFrameworksPublishDirectory)/**/*" />
<Stage2Cli Remove="*" />
<Stage2Cli Include="$(OutputDirectory)/**/*" />
</ItemGroup>
2017-04-08 07:29:20 +00:00
<Copy SourceFiles="@(BackwardsCompatibleSharedFrameworks)"
DestinationFiles="@(BackwardsCompatibleSharedFrameworks->'$(Stage2WithBackwardsCompatibleRuntimesOutputDirectory)/%(RecursiveDir)%(Filename)%(Extension)')" />
<Copy SourceFiles="@(Stage2Cli)"
2017-04-08 07:29:20 +00:00
DestinationFiles="@(Stage2Cli->'$(Stage2WithBackwardsCompatibleRuntimesOutputDirectory)/%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<Target Name="RetargetVSTestConsole"
AfterTargets="Publish">
<PropertyGroup>
<VSTestRuntimeConfigPath>$(PublishDir)/vstest.console.runtimeconfig.json</VSTestRuntimeConfigPath>
<ReplacementPattern>"version": ".*"</ReplacementPattern>
<ReplacementString>"version": "$(CLI_SharedFrameworkVersion)"</ReplacementString>
</PropertyGroup>
<ReplaceFileContents
InputFile="$(VSTestRuntimeConfigPath)"
DestinationFile="$(VSTestRuntimeConfigPath)"
ReplacementPatterns="$(ReplacementPattern)"
ReplacementStrings="$(ReplacementString)" />
</Target>
</Project>