使用WebDeploy将ASP.NET网站部署到IIS时,如果appsettings.Production.json不存在,是否只能创建它?

问题描述 投票:0回答:1

我的项目包含

appsettings.json
和默认的
appsettings.Production.json
文件。但是,管理员可以在服务器上手动编辑生产文件,如果我再次发布它,它会被覆盖。

如果该文件已经存在,我可以以某种方式指定only不覆盖该文件吗?

请注意,使用CopyToPublishDirectory="PreserveNewest"

这个问题
不起作用,因为显然它不适用于Web部署(IIS发布),并且我希望它不覆盖即使项目中的文件较新(即管理员在我们在代码中修改它之前对其进行编辑)。

.net asp.net-core iis webdeploy
1个回答
0
投票

您可以在构建 Web 包时排除特定文件或文件夹,方法是在与 Web 应用程序项目文件相同的文件夹中创建自定义

.wpp.targets
文件。

  1. 在项目文件所在的同一文件夹中创建一个名为 [项目名称].wpp.targets 的自定义项目文件。

  2. 在 .wpp.targets 文件中,添加 ItemGroup 元素。

  3. 在 ItemGroup 元素中,添加 ExcludeFromPackageFolders 和 ExcludeFromPackageFiles 项以根据需要排除特定文件和文件夹。

以下是这个

.wpp.targets
文件的基本结构:

<Project ToolsVersion="4.0" 
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>   
    <ExcludeFromPackageFolders Include="[semi-colon-separated folder list]">
      <FromTarget>[arbitrary metadata value]</FromTarget>
    </ExcludeFromPackageFolders>
    <ExcludeFromPackageFiles Include="[semi-colon-separated file list]">
      <FromTarget>[arbitrary metadata value]</FromTarget>
    </ExcludeFromPackageFiles>
  </ItemGroup>
</Project>

然后您需要将

.wpp.targets
文件添加到 Web 应用程序项目中,并在构建项目时使用该文件从 Web 包中排除 appsettings.json 和 appsettings.Production.json 。

更多详情请参考此文档:https://learn.microsoft.com/en-us/aspnet/web-forms/overview/deployment/advanced-enterprise-web-deployment/exclusion-files-and-部署中的文件夹#排除特定文件和文件夹

© www.soinside.com 2019 - 2024. All rights reserved.