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
|
||||
symbol.DeclaredAccessibility == Accessibility.Public &&
|
||||
!symbol.IsAbstract &&
|
||||
symbol.AllInterfaces.Contains(_symbols.IComponent);
|
||||
var isComponent = ComponentDetectionConventions.IsComponent(symbol, _symbols.IComponent);
|
||||
return isComponent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,8 +28,13 @@ Copyright (c) .NET Foundation. All rights reserved.
|
|||
<ItemGroup Condition="'$(EnableDefaultItems)' == 'true' And '$(EnableDefaultContentItems)' == 'true' ">
|
||||
<!-- 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="**\*.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 -->
|
||||
<Content Update="$(AppDesignerFolder)\**" CopyToPublishDirectory="Never" Condition="'$(AppDesignerFolder)' != ''"/>
|
||||
|
|
|
|||
|
|
@ -47,6 +47,17 @@ Copyright (c) .NET Foundation. All rights reserved.
|
|||
<ProjectCapability Include="SupportsTypeScriptNuGet" />
|
||||
</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.
|
||||
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.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