我的项目包含
appsettings.json
和默认的 appsettings.Production.json
文件。但是,管理员可以在服务器上手动编辑生产文件,如果我再次发布它,它会被覆盖。
如果该文件已经存在,我可以以某种方式指定only不覆盖该文件吗?
请注意,使用CopyToPublishDirectory="PreserveNewest"
的
这个问题不起作用,因为显然它不适用于Web部署(IIS发布),并且我希望它不覆盖即使项目中的文件较新(即管理员在我们在代码中修改它之前对其进行编辑)。
您可以在构建 Web 包时排除特定文件或文件夹,方法是在与 Web 应用程序项目文件相同的文件夹中创建自定义
.wpp.targets
文件。
在项目文件所在的同一文件夹中创建一个名为 [项目名称].wpp.targets 的自定义项目文件。
在 .wpp.targets 文件中,添加 ItemGroup 元素。
在 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 。