当前我正在使用此发布配置文件(.pubxml)进行发布:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<PublishProvider>FileSystem</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<TargetFramework>netcoreapp3.1</TargetFramework>
<ProjectGuid>17e8801d-27bf-4b5a-a0f5-125b0e52dde9</ProjectGuid>
<SelfContained>false</SelfContained>
<publishUrl>C:\000\Test</publishUrl>
<DeleteExistingFiles>True</DeleteExistingFiles>
<EnvironmentName>Production</EnvironmentName>
</PropertyGroup>
<ItemGroup>
<MaxifiedJs Include="wwwroot/**/*.js" Exclude="wwwroot/**/*.min.js" />
<MaxifiedCss Include="wwwroot/**/*.css" Exclude="wwwroot/**/*.min.css" />
<Content Update="@(MaxifiedJs)" CopyToPublishDirectory="Never" />
<Content Update="@(MaxifiedCss)" CopyToPublishDirectory="Never" />
</ItemGroup>
</Project>
工作正常,并从输出文件夹中删除了所有未缩小的文件。但是当文件没有缩小版本时就会出现问题。在这种情况下,什么都没有发表。仅当文件具有缩小版本时,如何使此规则有效?如果没有缩小的文件,则发布常规的.js或.css我没有在官方文档或StackOverflow中找到任何解决方案。
从ASP.NET Core 3.1的发布中排除未缩小的文件
据我所知,在发布时无法保留单个js或css(无缩小文件)文件。
要确定两个相似的文件,您需要捕获相同的部分以进行比较,但是msbuild中的捕获仅用于属性。属性只能被先前的值覆盖。
建议
要实现这一点,您应该使用函数,然后将单个js手动复制到Publish文件夹中。
或者只是复制所有文件,然后删除未缩小的文件。