Make launchSettings.json a content item that does not get copied to build or publish directory

Fixes https://github.com/aspnet/AspNetCore/issues/12841
\n\nCommit migrated from 34628d3066
This commit is contained in:
Pranav K 2019-08-02 11:26:00 -07:00
parent 6ad8b96f3e
commit 9d594e41c5
3 changed files with 19 additions and 4 deletions

View File

@ -23,7 +23,6 @@ Copyright (c) .NET Foundation. All rights reserved.
<DefaultItemExcludes>$(DefaultItemExcludes);**\jspm_packages\**;jspm_packages\**</DefaultItemExcludes>
<DefaultItemExcludes>$(DefaultItemExcludes);**\bower_components\**;bower_components\**</DefaultItemExcludes>
<DefaultWebContentItemExcludes>$(DefaultWebContentItemExcludes);wwwroot\**</DefaultWebContentItemExcludes>
<DefaultWebContentItemExcludes>$(DefaultWebContentItemExcludes);**\launchSettings.json</DefaultWebContentItemExcludes>
</PropertyGroup>
<ItemGroup Condition="'$(EnableDefaultItems)' == 'true' And '$(EnableDefaultContentItems)' == 'true' ">
@ -32,14 +31,14 @@ Copyright (c) .NET Foundation. All rights reserved.
<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)" />
<!-- Set CopyToPublishDirectory to Never for items under AppDesignerFolder ("Properties", by default) to avoid publishing launchSettings.json -->
<Content Update="$(AppDesignerFolder)\**" CopyToPublishDirectory="Never" Condition="'$(AppDesignerFolder)' != ''"/>
<!-- Set CopyToOutputDirectory & CopyToPublishDirectory to Never for items under AppDesignerFolder ("Properties", by default) to avoid copying launchSettings.json to the build or publish directory -->
<Content Update="$(AppDesignerFolder)\**" CopyToOutputDirectory="Never" CopyToPublishDirectory="Never" Condition="'$(AppDesignerFolder)' != ''"/>
<!-- Remove Content items from other item types (in a way that CPS understands) -->
<None Remove="wwwroot\**;**\*.json;**\*.config" />
<Compile Remove="wwwroot\**" />
<EmbeddedResource Remove="wwwroot\**" />
<!-- Keep track of the default content items for later to distinguish them from newly generated content items -->
<!-- It's important to keep this here so that it works well with the Web SDK -->
<_ContentIncludedByDefault Include="@(Content)" />

View File

@ -194,5 +194,17 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
Assert.BuildPassed(result);
Assert.BuildOutputContainsLine(result, "UpToDateReloadFileTypes: ;.cs;.razor;.resx;");
}
[Fact]
[InitializeTestProject("SimpleMvc")]
public async Task IntrospectJsonContentFiles()
{
var result = await DotnetMSBuild("_IntrospectContentItems");
Assert.BuildPassed(result);
Assert.BuildOutputContainsLine(result, "Content: Properties\\launchSettings.json CopyToOutputDirectory=Never CopyToPublishDirectory=Never 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");
}
}
}

View File

@ -42,4 +42,8 @@
<Target Name="_IntrospectUpToDateReloadFileTypes">
<Message Text="UpToDateReloadFileTypes: $(UpToDateReloadFileTypes)" Importance="High" />
</Target>
<Target Name="_IntrospectContentItems">
<Message Text="Content: %(Content.Identity) CopyToOutputDirectory=%(Content.CopyToOutputDirectory) CopyToPublishDirectory=%(Content.CopyToPublishDirectory) ExcludeFromSingleFile=%(Content.ExcludeFromSingleFile)" Importance="High" />
</Target>
</Project>