Merge branch 'release/3.1' => 'master' (dotnet/aspnetcore-tooling#1242)
\n\nCommit migrated from 7fee7f76e9
This commit is contained in:
commit
046e3d33e7
|
|
@ -0,0 +1,28 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Microsoft.CodeAnalysis.Razor
|
||||||
|
{
|
||||||
|
internal static class ComponentDetectionConventions
|
||||||
|
{
|
||||||
|
public static bool IsComponent(INamedTypeSymbol symbol, INamedTypeSymbol icomponentSymbol)
|
||||||
|
{
|
||||||
|
if (symbol is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(symbol));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (icomponentSymbol is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(icomponentSymbol));
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
symbol.DeclaredAccessibility == Accessibility.Public &&
|
||||||
|
!symbol.IsAbstract &&
|
||||||
|
symbol.AllInterfaces.Contains(icomponentSymbol);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -573,10 +573,8 @@ namespace Microsoft.CodeAnalysis.Razor
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
var isComponent = ComponentDetectionConventions.IsComponent(symbol, _symbols.IComponent);
|
||||||
symbol.DeclaredAccessibility == Accessibility.Public &&
|
return isComponent;
|
||||||
!symbol.IsAbstract &&
|
|
||||||
symbol.AllInterfaces.Contains(_symbols.IComponent);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,13 @@ Copyright (c) .NET Foundation. All rights reserved.
|
||||||
<ItemGroup Condition="'$(EnableDefaultItems)' == 'true' And '$(EnableDefaultContentItems)' == 'true' ">
|
<ItemGroup Condition="'$(EnableDefaultItems)' == 'true' And '$(EnableDefaultContentItems)' == 'true' ">
|
||||||
<!-- Publish everything under wwwroot, all JSON files, all config files and all Razor files -->
|
<!-- Publish everything under wwwroot, all JSON files, all config files and all Razor files -->
|
||||||
<Content Include="wwwroot\**" ExcludeFromSingleFile="true" CopyToPublishDirectory="PreserveNewest" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" />
|
<Content Include="wwwroot\**" ExcludeFromSingleFile="true" CopyToPublishDirectory="PreserveNewest" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" />
|
||||||
<Content Include="**\*.config" ExcludeFromSingleFile="true" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);$(DefaultWebContentItemExcludes)" />
|
|
||||||
<Content Include="**\*.json" ExcludeFromSingleFile="true" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);$(DefaultWebContentItemExcludes)" />
|
<Content Include="**\*.config" ExcludeFromSingleFile="true" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);$(DefaultWebContentItemExcludes)" Condition="'$(ExcludeConfigFilesFromBuildOutput)'!='true'" />
|
||||||
|
<Content Include="**\*.json" ExcludeFromSingleFile="true" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);$(DefaultWebContentItemExcludes)" Condition="'$(ExcludeConfigFilesFromBuildOutput)'!='true'" />
|
||||||
|
|
||||||
|
<!-- When ExcludeConfigFilesFromBuildOutput is set, do not copy .,config, .json files to the build output directory. -->
|
||||||
|
<Content Include="**\*.config" ExcludeFromSingleFile="true" CopyToPublishDirectory="PreserveNewest" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);$(DefaultWebContentItemExcludes)" Condition="'$(ExcludeConfigFilesFromBuildOutput)'=='true'" />
|
||||||
|
<Content Include="**\*.json" ExcludeFromSingleFile="true" CopyToPublishDirectory="PreserveNewest" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);$(DefaultWebContentItemExcludes)" Condition="'$(ExcludeConfigFilesFromBuildOutput)'=='true'" />
|
||||||
|
|
||||||
<!-- Set CopyToPublishDirectory to Never for items under AppDesignerFolder ("Properties", by default) to avoid publishing launchSettings.json -->
|
<!-- Set CopyToPublishDirectory to Never for items under AppDesignerFolder ("Properties", by default) to avoid publishing launchSettings.json -->
|
||||||
<Content Update="$(AppDesignerFolder)\**" CopyToPublishDirectory="Never" Condition="'$(AppDesignerFolder)' != ''"/>
|
<Content Update="$(AppDesignerFolder)\**" CopyToPublishDirectory="Never" Condition="'$(AppDesignerFolder)' != ''"/>
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,17 @@ Copyright (c) .NET Foundation. All rights reserved.
|
||||||
<ProjectCapability Include="SupportsTypeScriptNuGet" />
|
<ProjectCapability Include="SupportsTypeScriptNuGet" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
In order to properly support Blazor partial classes we need to ensure that older SDKs don't
|
||||||
|
add declaration files to the compile list. We do all the compilation work in-memory in latest
|
||||||
|
VS.
|
||||||
|
-->
|
||||||
|
<Target Name="_RemoveRazorDeclartionsFromCompile" AfterTargets="RazorGenerateComponentDeclaration">
|
||||||
|
<ItemGroup Condition="'$(DesignTimeBuild)'=='true'">
|
||||||
|
<Compile Remove="@(_RazorComponentDeclaration)" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Target>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
WebSdk imports these capabilities for nesting in DotNetCoreWeb projects.
|
WebSdk imports these capabilities for nesting in DotNetCoreWeb projects.
|
||||||
Conditinally import these capabilities if the project isn't targeting the WebSdk.
|
Conditinally import these capabilities if the project isn't targeting the WebSdk.
|
||||||
|
|
|
||||||
|
|
@ -207,5 +207,19 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
|
||||||
Assert.BuildOutputContainsLine(result, "Content: appsettings.json CopyToOutputDirectory=PreserveNewest CopyToPublishDirectory=PreserveNewest ExcludeFromSingleFile=true");
|
Assert.BuildOutputContainsLine(result, "Content: appsettings.json CopyToOutputDirectory=PreserveNewest CopyToPublishDirectory=PreserveNewest ExcludeFromSingleFile=true");
|
||||||
Assert.BuildOutputContainsLine(result, "Content: appsettings.Development.json CopyToOutputDirectory=PreserveNewest CopyToPublishDirectory=PreserveNewest ExcludeFromSingleFile=true");
|
Assert.BuildOutputContainsLine(result, "Content: appsettings.Development.json CopyToOutputDirectory=PreserveNewest CopyToPublishDirectory=PreserveNewest ExcludeFromSingleFile=true");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
[InitializeTestProject("SimpleMvc")]
|
||||||
|
public async Task IntrospectJsonContentFiles_WithExcludeConfigFilesFromBuildOutputSet()
|
||||||
|
{
|
||||||
|
// Verifies that the fix for https://github.com/aspnet/AspNetCore/issues/14017 works.
|
||||||
|
var result = await DotnetMSBuild("_IntrospectContentItems", "/p:ExcludeConfigFilesFromBuildOutput=true");
|
||||||
|
|
||||||
|
Assert.BuildPassed(result);
|
||||||
|
var launchSettingsPath = Path.Combine("Properties", "launchSettings.json");
|
||||||
|
Assert.BuildOutputContainsLine(result, $"Content: {launchSettingsPath} CopyToOutputDirectory= CopyToPublishDirectory=Never ExcludeFromSingleFile=true");
|
||||||
|
Assert.BuildOutputContainsLine(result, "Content: appsettings.json CopyToOutputDirectory= CopyToPublishDirectory=PreserveNewest ExcludeFromSingleFile=true");
|
||||||
|
Assert.BuildOutputContainsLine(result, "Content: appsettings.Development.json CopyToOutputDirectory= CopyToPublishDirectory=PreserveNewest ExcludeFromSingleFile=true");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue