From 148008d73331514c0cf38b98d21fba52cb1fcbce Mon Sep 17 00:00:00 2001 From: Bryan Thornbury Date: Tue, 4 Oct 2016 15:49:35 -0700 Subject: [PATCH] fix key sign --- .../Rules/MigrateBuildOptionsRule.cs | 5 +++++ .../transforms/AddPropertyTransform.cs | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/Microsoft.DotNet.ProjectJsonMigration/Rules/MigrateBuildOptionsRule.cs b/src/Microsoft.DotNet.ProjectJsonMigration/Rules/MigrateBuildOptionsRule.cs index 540b2e22e..0d46d00ee 100644 --- a/src/Microsoft.DotNet.ProjectJsonMigration/Rules/MigrateBuildOptionsRule.cs +++ b/src/Microsoft.DotNet.ProjectJsonMigration/Rules/MigrateBuildOptionsRule.cs @@ -32,6 +32,11 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Rules new AddPropertyTransform("SignAssembly", "true", compilerOptions => !string.IsNullOrEmpty(compilerOptions.KeyFile)) + .WithMSBuildCondition(" '$(OS)' == 'Windows_NT' "), + new AddPropertyTransform("PublicSign", + "true", + compilerOptions => !string.IsNullOrEmpty(compilerOptions.KeyFile)) + .WithMSBuildCondition(" '$(OS)' != 'Windows_NT' ") }; private AddPropertyTransform DefineTransform => new AddPropertyTransform( diff --git a/src/Microsoft.DotNet.ProjectJsonMigration/transforms/AddPropertyTransform.cs b/src/Microsoft.DotNet.ProjectJsonMigration/transforms/AddPropertyTransform.cs index b3d5f49d1..b3dbe40f5 100644 --- a/src/Microsoft.DotNet.ProjectJsonMigration/transforms/AddPropertyTransform.cs +++ b/src/Microsoft.DotNet.ProjectJsonMigration/transforms/AddPropertyTransform.cs @@ -14,6 +14,8 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Transforms private readonly string _propertyValue; private readonly Func _propertyValueFunc; + private string _msbuildCondition = null; + public AddPropertyTransform(string propertyName, string propertyValue, Func condition) : base(condition) { @@ -28,13 +30,24 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Transforms _propertyValueFunc = propertyValueFunc; } + public AddPropertyTransform WithMSBuildCondition(string condition) + { + _msbuildCondition = condition; + return this; + } + public override ProjectPropertyElement ConditionallyTransform(T source) { string propertyValue = GetPropertyValue(source); var property = _propertyObjectGenerator.CreatePropertyElement(PropertyName); property.Value = propertyValue; - + + if (!string.IsNullOrEmpty(_msbuildCondition)) + { + property.Condition = _msbuildCondition; + } + return property; }