从 visual studio 发布项目时排除目标文件

Exclude destination files when publishing project from visual studio

所以只是对我的设置的快速概述。我正在使用 visual studio 2015,该项目是一个 mvc web 应用程序,我使用 web 部署来发布网站。

目前我在我的发布配置文件中设置了这些选项

所以基本上我的问题是我在生产环境中有一些我想保留的文件夹和文件,但同时我想删除我的项目中不再存在的其他文件。

例如,我们将数据库连接保存在站点根目录中的单独文件 "web.connectionstrings.config" 中。该文件在我的项目中,但内容设置为 none(这是因为该文件未签入源代码管理,因此我不想发布它)。但正因为如此,它也想在目标服务器上删除它。

另一个例子是日志文件夹。我不想在生产服务器上删除这个,但是因为这个文件夹是自动生成的,而不是在我的项目中,所以它想删除它。

我关注了这个linkhttps://www.asp.net/web-forms/overview/deployment/advanced-enterprise-web-deployment/excluding-files-and-folders-from-deployment

但是我得到以下错误

Web deployment task failed. (Unrecognized skip directive 'skipaction'. Must be one of the following: "objectName," "keyAttribute," "absolutePath," "xPath," "attributes..")

我也关注了这个回答

但这会产生与上述相同的错误。

我尝试使用以下行直接编辑 .csproj 文件

<ExcludeFilesFromDeployment> Web.ConnectionStrings.config;Web.secrets.config; </ExcludeFilesFromDeployment> <ExcludeFoldersFromDeployment> logs </ExcludeFoldersFromDeployment>

但这似乎被忽略了。

仅供参考我也试过这个包https://github.com/ligershark/publish-ignore

同样,我所做的任何事情似乎都被忽略了。

我只是想知道是否有人真的有任何建议或更好的方法。谢谢

通过 AppVeyor 部署 Web 项目解决了这个问题,该功能内置了跳过 files/folders 功能。