如何防止Visual Studio在Web项目中"发布"XML文档文件?

Hei*_*nzi 10 c# vb.net asp.net deployment publish

注意:此问题类似于如何在发布模式构建中阻止XML文档文件的副本?,但它不一样,那里的答案不适用.请继续阅读以找出原因.(如果您不同意,请在评论或聊天中询问,我很乐意精心制作).


我有一个库项目(myLibrary)和一个引用该库的ASP.NET Web应用程序项目(两者都在同一个解决方案中).检查库项目的"生成XML文档文件",因为我希望在开发时具有那些不错的IntelliSense功能.

当我发布 Web应用程序(项目上的上下文菜单/发布...)时,它只将运行应用程序所需的文件(无源代码等)复制到某个发布目录.非常好.不幸的是,它还复制了库的XML文档文件.由于我认为我们图书馆的文档是商业秘密,我不希望它最终出现在客户的服务器上.因此,我们必须记住在部署之前从发布目录中手动删除此文件.

有没有办法阻止 Visual Studio在发布ASP.NET项目时复制此文件,但在开发时仍然保留XML文档IntelliSense的好处?

Gra*_*mas 10

假设您正在使用不同的配置进行开发和发布(以及其他任何内容),取消选中"XML文档文件"/关闭特定配置的生成将阻止在不需要时进行部署.另一种选择是删除文件的构建后操作.

前两种选择看似更优雅.


mar*_*ark 5

还有另一种解决方案。只需在 csproj 文件的开头部分包含以下内容:

<AllowedReferenceRelatedFileExtensions>.pdb</AllowedReferenceRelatedFileExtensions>
Run Code Online (Sandbox Code Playgroud)

就是这样。XML 文件将不再发布。当然,你可以根据具体的配置来进行设置。

  • 注意:此更改将停止输出引用程序集(在同一解决方案中)的 .config 文件。 (2认同)