Make launchSettings.json a content item that does not get copied to b… (dotnet/aspnetcore-tooling#928)

* 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 d0dc8140e2
This commit is contained in:
Pranav K 2019-08-06 13:00:16 -07:00 committed by GitHub
commit 56a440ec9d
4 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' ">
@ -33,13 +32,13 @@ Copyright (c) .NET Foundation. All rights reserved.
<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)' != ''"/>
<Content Update="$(AppDesignerFolder)\**" 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,18 @@ 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);
var launchSettingsPath = Path.Combine("Properties", "launchSettings.json");
Assert.BuildOutputContainsLine(result, $"Content: {launchSettingsPath} CopyToOutputDirectory=PreserveNewest 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

@ -51,7 +51,6 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
Assert.FileExists(result, OutputPath, "SimpleMvc.Views.pdb");
Assert.FileExists(result, OutputPath, "appsettings.json");
Assert.FileExists(result, OutputPath, "appsettings.Development.json");
Assert.FileDoesNotExist(result, OutputPath, Path.Combine("Properties", "launchSettings.json"));
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.dll");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.pdb");

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>