Merge pull request #4444 from livarcocc/update_templates
Updating the msbuild templates in the CLI to use TargetFramework
This commit is contained in:
commit
b7ac730a7f
8 changed files with 48 additions and 20 deletions
|
@ -1,11 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFrameworks>netcoreapp1.0</TargetFrameworks>
|
<TargetFramework>netcoreapp1.0</TargetFramework>
|
||||||
<OutputPath>bin\$(Configuration)</OutputPath>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -17,7 +15,7 @@
|
||||||
<Version>1.0.1</Version>
|
<Version>1.0.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.NET.Sdk">
|
<PackageReference Include="Microsoft.NET.Sdk">
|
||||||
<Version>1.0.0-alpha-20161010-1</Version>
|
<Version>1.0.0-alpha-20161012-3</Version>
|
||||||
<PrivateAssets>All</PrivateAssets>
|
<PrivateAssets>All</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFrameworks>netcoreapp1.0</TargetFrameworks>
|
<TargetFramework>netcoreapp1.0</TargetFramework>
|
||||||
<OutputPath>bin\$(Configuration)</OutputPath>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -17,7 +15,7 @@
|
||||||
<Version>1.0.1</Version>
|
<Version>1.0.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.NET.Sdk">
|
<PackageReference Include="Microsoft.NET.Sdk">
|
||||||
<Version>1.0.0-alpha-20161010-1</Version>
|
<Version>1.0.0-alpha-20161012-3</Version>
|
||||||
<PrivateAssets>All</PrivateAssets>
|
<PrivateAssets>All</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="dotnet-portable">
|
<PackageReference Include="dotnet-portable">
|
||||||
|
|
|
@ -108,7 +108,7 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
{
|
{
|
||||||
return _project
|
return _project
|
||||||
.AllEvaluatedProperties
|
.AllEvaluatedProperties
|
||||||
.Where(p => p.Name.Equals("ProjectLockFile"))
|
.Where(p => p.Name.Equals("ProjectAssetsFile"))
|
||||||
.Select(p => p.EvaluatedValue)
|
.Select(p => p.EvaluatedValue)
|
||||||
.FirstOrDefault(p => File.Exists(p));
|
.FirstOrDefault(p => File.Exists(p));
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,14 +30,32 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Rules
|
||||||
CleanExistingProperties(csproj);
|
CleanExistingProperties(csproj);
|
||||||
CleanExistingPackageReferences(csproj);
|
CleanExistingPackageReferences(csproj);
|
||||||
|
|
||||||
_transformApplicator.Execute(
|
if(migrationRuleInputs.ProjectContexts.Count() == 1)
|
||||||
FrameworksTransform.Transform(migrationRuleInputs.ProjectContexts.Select(p => p.TargetFramework)),
|
{
|
||||||
propertyGroup);
|
_transformApplicator.Execute(
|
||||||
|
FrameworkTransform.Transform(
|
||||||
|
migrationRuleInputs.ProjectContexts.Single().TargetFramework),
|
||||||
|
propertyGroup);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_transformApplicator.Execute(
|
||||||
|
FrameworksTransform.Transform(
|
||||||
|
migrationRuleInputs.ProjectContexts.Select(p => p.TargetFramework)),
|
||||||
|
propertyGroup);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CleanExistingProperties(ProjectRootElement csproj)
|
private void CleanExistingProperties(ProjectRootElement csproj)
|
||||||
{
|
{
|
||||||
var existingPropertiesToRemove = new string[] { "TargetFrameworkIdentifier", "TargetFrameworkVersion", "TargetFrameworks" };
|
var existingPropertiesToRemove = new string[]
|
||||||
|
{
|
||||||
|
"TargetFrameworkIdentifier",
|
||||||
|
"TargetFrameworkVersion",
|
||||||
|
"TargetFrameworks",
|
||||||
|
"TargetFramework"
|
||||||
|
};
|
||||||
|
|
||||||
var properties = csproj.Properties.Where(p => existingPropertiesToRemove.Contains(p.Name));
|
var properties = csproj.Properties.Where(p => existingPropertiesToRemove.Contains(p.Name));
|
||||||
|
|
||||||
foreach (var property in properties)
|
foreach (var property in properties)
|
||||||
|
@ -84,8 +102,15 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Rules
|
||||||
}
|
}
|
||||||
|
|
||||||
private AddPropertyTransform<IEnumerable<NuGetFramework>> FrameworksTransform =>
|
private AddPropertyTransform<IEnumerable<NuGetFramework>> FrameworksTransform =>
|
||||||
new AddPropertyTransform<IEnumerable<NuGetFramework>>("TargetFrameworks",
|
new AddPropertyTransform<IEnumerable<NuGetFramework>>(
|
||||||
|
"TargetFrameworks",
|
||||||
frameworks => string.Join(";", frameworks.Select(f => f.GetShortFolderName())),
|
frameworks => string.Join(";", frameworks.Select(f => f.GetShortFolderName())),
|
||||||
frameworks => true);
|
frameworks => true);
|
||||||
|
|
||||||
|
private AddPropertyTransform<NuGetFramework> FrameworkTransform =>
|
||||||
|
new AddPropertyTransform<NuGetFramework>(
|
||||||
|
"TargetFramework",
|
||||||
|
framework => framework.GetShortFolderName(),
|
||||||
|
framework => true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFrameworks>netcoreapp1.0</TargetFrameworks>
|
<TargetFramework>netcoreapp1.0</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>netstandard1.4</TargetFrameworks>
|
<TargetFramework>netstandard1.4</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -107,6 +107,8 @@ namespace Microsoft.DotNet.Tools.Restore3
|
||||||
msbuildArgs.Add($"/p:RestoreRecursive=false");
|
msbuildArgs.Add($"/p:RestoreRecursive=false");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AddWorkaroundForOutputValidationIssue(msbuildArgs);
|
||||||
|
|
||||||
// Add in arguments
|
// Add in arguments
|
||||||
msbuildArgs.AddRange(argRoot.Values);
|
msbuildArgs.AddRange(argRoot.Values);
|
||||||
|
|
||||||
|
@ -118,5 +120,10 @@ namespace Microsoft.DotNet.Tools.Restore3
|
||||||
|
|
||||||
return cmd.Execute(args);
|
return cmd.Execute(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void AddWorkaroundForOutputValidationIssue(IList<string> msbuildArgs)
|
||||||
|
{
|
||||||
|
msbuildArgs.Add("/p:SkipInvalidConfigurations=true;_InvalidConfigurationWarning=false");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Tests
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Migrating_Single_TFM_project_Populates_TargetFrameworks()
|
public void Migrating_Single_TFM_project_Populates_TargetFramework()
|
||||||
{
|
{
|
||||||
var testDirectory = Temp.CreateDirectory().Path;
|
var testDirectory = Temp.CreateDirectory().Path;
|
||||||
var testPJ = new ProjectJsonBuilder(TestAssetsManager)
|
var testPJ = new ProjectJsonBuilder(TestAssetsManager)
|
||||||
|
@ -94,7 +94,7 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Tests
|
||||||
new MigrateTFMRule().Apply(migrationSettings, migrationInputs);
|
new MigrateTFMRule().Apply(migrationSettings, migrationInputs);
|
||||||
Console.WriteLine(mockProj.RawXml);
|
Console.WriteLine(mockProj.RawXml);
|
||||||
|
|
||||||
mockProj.Properties.Count(p => p.Name == "TargetFrameworks").Should().Be(1);
|
mockProj.Properties.Count(p => p.Name == "TargetFramework").Should().Be(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue