Update Razor SDK packing logic to not include Pack at properties layer.
- Added test to verify that no-build scenarios work as expected. #2378
This commit is contained in:
parent
ca2d5738d6
commit
2d5a1737a2
|
|
@ -67,10 +67,7 @@ Copyright (c) .NET Foundation. All rights reserved.
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="'$(EnableDefaultItems)' == 'true' And '$(EnableDefaultContentItems)' == 'true'">
|
||||
<Content Include="**\*.cshtml" CopyToPublishDirectory="PreserveNewest" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);$(DefaultWebContentItemExcludes)">
|
||||
<Pack>$(IncludeRazorContentInPack)</Pack>
|
||||
</Content>
|
||||
|
||||
<Content Include="**\*.cshtml" CopyToPublishDirectory="PreserveNewest" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);$(DefaultWebContentItemExcludes)" />
|
||||
<None Remove="**\*.cshtml" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -74,6 +74,11 @@ Copyright (c) .NET Foundation. All rights reserved.
|
|||
ResolveRazorGenerateInputs
|
||||
</PrepareForBuildDependsOn>
|
||||
|
||||
<GenerateNuspecDependsOn>
|
||||
ResolveRazorGenerateInputs;
|
||||
$(GenerateNuspecDependsOn)
|
||||
</GenerateNuspecDependsOn>
|
||||
|
||||
<PrepareForRunDependsOn>
|
||||
_RazorPrepareForRun;
|
||||
$(PrepareForRunDependsOn)
|
||||
|
|
@ -326,6 +331,13 @@ Copyright (c) .NET Foundation. All rights reserved.
|
|||
|
||||
<Content Condition="'%(Content.Extension)'=='.cshtml'" CopyToPublishDirectory="Never" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="
|
||||
'$(ResolvedRazorCompileToolset)'=='RazorSdk' and
|
||||
'$(EnableDefaultRazorGenerateItems)'=='true'">
|
||||
|
||||
<Content Condition="'%(Content.Extension)'=='.cshtml'" Pack="$(IncludeRazorContentInPack)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="AssignRazorGenerateTargetPaths" Condition="'@(RazorGenerate)' != ''">
|
||||
|
|
|
|||
|
|
@ -15,6 +15,46 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
|
|||
{
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[InitializeTestProject("ClassLibrary")]
|
||||
public async Task Pack__NoBuild_Works_IncludesRazorAssembly()
|
||||
{
|
||||
var result = await DotnetMSBuild("Build");
|
||||
Assert.BuildPassed(result);
|
||||
|
||||
result = await DotnetMSBuild("Pack", "/p:NoBuild=true");
|
||||
Assert.BuildPassed(result);
|
||||
|
||||
Assert.FileExists(result, OutputPath, "ClassLibrary.dll");
|
||||
Assert.FileExists(result, OutputPath, "ClassLibrary.Views.dll");
|
||||
|
||||
if (!RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
|
||||
{
|
||||
// Travis on OSX produces different full paths in C# and MSBuild
|
||||
Assert.NuspecContains(
|
||||
result,
|
||||
Path.Combine("obj", Configuration, "ClassLibrary.1.0.0.nuspec"),
|
||||
$"<file src=\"{Path.Combine(Project.DirectoryPath, "bin", Configuration, "netstandard2.0", "ClassLibrary.Views.dll")}\" " +
|
||||
$"target=\"{Path.Combine("lib", "netstandard2.0", "ClassLibrary.Views.dll")}\" />");
|
||||
|
||||
Assert.NuspecDoesNotContain(
|
||||
result,
|
||||
Path.Combine("obj", Configuration, "ClassLibrary.1.0.0.nuspec"),
|
||||
$"<file src=\"{Path.Combine(Project.DirectoryPath, "bin", Configuration, "netstandard2.0", "ClassLibrary.Views.pdb")}\" " +
|
||||
$"target=\"{Path.Combine("lib", "netstandard2.0", "ClassLibrary.Views.pdb")}\" />");
|
||||
}
|
||||
|
||||
Assert.NuspecDoesNotContain(
|
||||
result,
|
||||
Path.Combine("obj", Configuration, "ClassLibrary.1.0.0.nuspec"),
|
||||
@"<files include=""any/netstandard2.0/Views/Shared/_Layout.cshtml"" buildAction=""Content"" />");
|
||||
|
||||
Assert.NupkgContains(
|
||||
result,
|
||||
Path.Combine("bin", Configuration, "ClassLibrary.1.0.0.nupkg"),
|
||||
Path.Combine("lib", "netstandard2.0", "ClassLibrary.Views.dll"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[InitializeTestProject("ClassLibrary")]
|
||||
public async Task Pack_Works_IncludesRazorAssembly()
|
||||
|
|
|
|||
Loading…
Reference in New Issue