Skip to content

Commit 372e67d

Browse files
author
William Li
authored
Move UseApphost + PackAsTool logic (#3212)
It needs to be inside a target. Since PackAsTool is set in csproj. And it need to be before Microsoft.NET.Sdk.targets (basically command target), so "RunCommand" property can use the correct value.
1 parent d01c802 commit 372e67d

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.PackTool.targets

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ Copyright (c) .NET Foundation. All rights reserved.
2727
<PropertyGroup>
2828
<_ToolsSettingsFilePath>$(BaseIntermediateOutputPath)DotnetToolSettings.xml</_ToolsSettingsFilePath>
2929
<SuppressDependenciesWhenPacking Condition=" '$(PackAsTool)' == 'true' ">true</SuppressDependenciesWhenPacking>
30-
<UseAppHost Condition=" '$(SelfContained)' != 'true' and '$(PackAsTool)' == 'true' ">false</UseAppHost>
3130
</PropertyGroup>
3231

3332
<Target Name="PackTool" DependsOnTargets="GenerateToolsSettingsFileFromBuildProperty;Publish;_PackToolValidation" Condition=" '$(PackAsTool)' == 'true' ">

src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.RuntimeIdentifierInference.targets

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ Copyright (c) .NET Foundation. All rights reserved.
104104
<SelfContained Condition="'$(SelfContained)' == '' and '$(RuntimeIdentifier)' != ''">true</SelfContained>
105105
<SelfContained Condition="'$(SelfContained)' == ''">false</SelfContained>
106106
<UseAppHost Condition="'$(UseAppHost)' == '' and
107+
('$(SelfContained)' == 'true' or '$(PackAsTool)' != 'true') and
107108
('$(SelfContained)' == 'true' or
108109
('$(RuntimeIdentifier)' != '' and '$(_TargetFrameworkVersionWithoutV)' >= '2.1') or
109110
'$(_TargetFrameworkVersionWithoutV)' >= '3.0')">true</UseAppHost>

src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolProject.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,15 @@ namespace Microsoft.NET.ToolPack.Tests
2121
public class GivenThatWeWantToPackAToolProject : SdkTest
2222
{
2323
private string _testRoot;
24+
private string _targetFrameworkOrFrameworks = "netcoreapp2.1";
2425

2526
public GivenThatWeWantToPackAToolProject(ITestOutputHelper log) : base(log)
2627
{
2728
}
2829

2930
private string SetupNuGetPackage(bool multiTarget, [CallerMemberName] string callingMethod = "")
3031
{
32+
3133
TestAsset helloWorldAsset = _testAssetsManager
3234
.CopyTestAsset("PortableTool", callingMethod + multiTarget)
3335
.WithSource()
@@ -36,7 +38,7 @@ private string SetupNuGetPackage(bool multiTarget, [CallerMemberName] string cal
3638
XNamespace ns = project.Root.Name.Namespace;
3739
XElement propertyGroup = project.Root.Elements(ns + "PropertyGroup").First();
3840
})
39-
.WithTargetFrameworkOrFrameworks("netcoreapp2.1", multiTarget)
41+
.WithTargetFrameworkOrFrameworks(_targetFrameworkOrFrameworks, multiTarget)
4042
.Restore(Log);
4143

4244
_testRoot = helloWorldAsset.TestRoot;
@@ -128,6 +130,8 @@ public void It_contains_runtimeconfig_for_each_tfm(bool multiTarget)
128130
[InlineData(false)]
129131
public void It_does_not_contain_apphost_exe(bool multiTarget)
130132
{
133+
_targetFrameworkOrFrameworks = "netcoreapp3.0";
134+
131135
var nugetPackage = SetupNuGetPackage(multiTarget);
132136
using (var nupkgReader = new PackageArchiveReader(nugetPackage))
133137
{
@@ -141,6 +145,17 @@ public void It_does_not_contain_apphost_exe(bool multiTarget)
141145
allItems.Should().NotContain($"tools/{framework.GetShortFolderName()}/any/consoledemo{extension}");
142146
}
143147
}
148+
149+
var getValuesCommand = new GetValuesCommand(
150+
Log,
151+
_testRoot,
152+
_targetFrameworkOrFrameworks,
153+
"RunCommand",
154+
GetValuesCommand.ValueType.Property);
155+
156+
getValuesCommand.Execute();
157+
Path.GetExtension(getValuesCommand.GetValues().Single())
158+
.Should().NotBe(".exe", "Repro https://github.com/dotnet/cli/issues/11299");
144159
}
145160

146161
[Theory]

0 commit comments

Comments
 (0)