Merge pull request #4444 from livarcocc/update_templates

Updating the msbuild templates in the CLI to use TargetFramework
This commit is contained in:
Livar 2016-10-18 17:39:03 -07:00 committed by GitHub
commit b7ac730a7f
8 changed files with 48 additions and 20 deletions

View file

@ -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>

View file

@ -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">

View file

@ -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));
} }

View file

@ -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);
} }
} }

View file

@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp1.0</TargetFrameworks> <TargetFramework>netcoreapp1.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -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>

View file

@ -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");
}
} }
} }

View file

@ -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);
} }
} }
} }