网站发布文件夹中出现了pdb文件

18

我有一个asp.net网站,使用VS2010中的“生成 > 发布网站”选项发布时,甚至在检查网站发布窗口中的省略调试信息选项时,发布文件夹仍然包含pdb文件。 有没有办法避免这种行为?

5个回答

35
在“发布 Web”对话框的信息文本中,写道:

发布使用“项目属性”的“包/发布 Web”和“包/发布 SQL”选项卡中的设置。

因此,要防止 PDB 文件被发布,您可以:
  1. 如果存在PDB文件,请从现有的发布位置中删除所有的 PDB 文件。(它们不会自动删除)。
  2. 右键单击您的项目-> 属性,选择“包/发布 Web”选项卡。
  3. 确保选中“排除生成的调试符号”框。
现在当您发布您的项目时,PDB 文件将被省略。

2
我相信这是正确的答案,而不是被接受的答案。 - Jeff Fol
3
只有针对Web应用程序才有此对话框,对于网站项目则没有。 - Eugene D. Gubenkov
我最喜欢这个答案。我仍然想在发布时构建.pdbs,这样我就可以将它们添加到我们的符号服务器(用于分析来自生产环境的转储文件),但是在部署时排除它们。 - peterc
1
WinForms项目怎么办?它没有“Package/Publish Web”选项卡。我在哪里可以找到它的“排除生成的调试符号”框? - manymanymore

11

另一种方法是编辑你的 Web 项目下 Properties / PublishProfiles 目录下的 pubxml 文件。

我在 ExcludeFilesFromDeployment 节点中加入了bin\**\*.pdb** 表示在binpdb文件之间可以没有层级关系,或者有任意数量的层级关系)。

因此,pubxml 看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <!-- ... -->
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <ExcludeFilesFromDeployment>bin\**\*.pdb</ExcludeFilesFromDeployment>
  </PropertyGroup>
</Project>

6

按照以下步骤逐步执行,防止发布后生成PDB文件:

我已经附上了使用MS Visual Studio Community 2017版本的所有步骤截图:

防止生成PDB文件的设置


3

在调试模式下,PDB文件将保存在上次构建的位置。检查属性以确定它们何时被修改或删除,以查看是否会重新生成。


谢谢eddy556,但我尝试了将空文件夹作为目标位置,但没有成功,这是你的意思吗? - DSharper
不,我的意思是确保你在发布模式下,然后只需删除PDB文件,它们不应该会再次出现。 - m.edmondson
嗨,有个奇怪的问题,在构建模式选项中我只能选择调试模式,但是当我进入新配置窗口时,没有从发布配置复制的选项。有什么想法吗?谢谢。 - DSharper

0
如果您在发布期间启用了预编译:
在发布设置选项卡下,单击文件发布选项以展开该部分。
接下来,单击“发布期间预编译”选项旁边的配置链接。然后,请确保在弹出窗口中未选中“发出调试信息”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接