您可以通过扩展名或文件名修改 web.config 文件中的属性来排除文件。查看文档web.config 中的 buildproviders 元素 https://msdn.microsoft.com/en-us/library/h0e51sw9(v=vs.100).aspx。您可以添加扩展名并将其映射到 System.Web.Compilation.ForceCopyBuildProvider,或者添加文件名并使用 System.Web.Compilation.IgnoreFileBuildProvider
buildproviders 部分具有以下结构:
<buildProviders>
<add />
<clear/>
<remove />
</buildProviders>
您还可以通过修改项目文件来排除文件或文件夹。在 PropertyGroup 元素中,您可以添加 ExcludeFilesFromDeployment 和 ExcludeFoldersFromDeployment 元素以排除所需的项目。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<ExcludeFilesFromDeployment>File1.aspx;File2.aspx</ExcludeFilesFromDeployment>
<ExcludeFoldersFromDeployment>Folder1;Folder2</ExcludeFoldersFromDeployment>
</PropertyGroup>
有关更多详细信息,请参阅此问题的答案:排除在 Visual Studio 中发布的网站中的文件 https://stackoverflow.com/questions/650875/exclude-files-from-web-site-publish-in-visual-studio
UPDATE:为了满足修订后的要求,即您能够在所有项目和解决方案中在全球范围内执行此操作,我建议您创建一个构建目标 https://msdn.microsoft.com/en-us/library/ms366724.aspx您可以将其导入到项目文件中的文件。在目标文件中,您可以识别要排除的文件和文件夹。
为了更轻松地将此构建目标交付给所有解决方案,您可以创建一个包含目标文件的 NuGet 包并相应地修改 .csproj 文件。
这本质上是使用的方法慢猎豹 https://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5将 web.config 转换过程扩展到其他 .config 文件; NuGet 包提供了一个扩展构建过程的自定义 .targets 文件。
初始设置很费力,但如果您支持很多解决方案或团队,这可能是最好的方法。