Visual Studio 2013网站发布未复制.pdb文件

4
我已经查看了关于VS 2012的答案,但它并没有起作用。我不进行预编译,我把"Debug Info"设置为"full""Items to deploy"设置为"Only files needed to run this application",并且"Exclude generated debug symbols"未打勾。
我使用了"All files in this project" 进行测试,并尝试编辑了 pubxml 文件。除了无法正常工作外,我找不到文件模式文档。
请帮忙解决。

1
你复制调试存储文件(*.pdb文件)有什么原因吗?通常情况下,当你发布一个网站时,你是发布到生产环境的。 - AStopher
主要原因是为了允许远程调试,我们与客户的关系非常密切,因此我们并不太在意源代码保护。 - levmatta
另一个原因可能是在异常发生时在调用堆栈中有行号。请参见:https://dev59.com/q3M_5IYBdhLWcg3wmkau - Tom Pažourek
实际上,PDB仅包括源文件名称/行号和局部变量名称... 实际信息已经在您的已发布DLL中。例如,尝试使用dotPeek从DLL生成完整项目。 - user3638471
3个回答

5
经过多次测试,我发现在发布处理期间,“排除生成的调试符号”标记在闪烁。我的错误是我正在编辑“活动配置”——即“调试”而不是我的发布流程中使用的“发布”配置。
请验证项目属性页面上的配置组合,直到我注意到这一点之前都很奇怪。

我从解决方案中排除了 bin 文件夹。然后,我就能够发布了。 - JoshYates1980

2
在“发布网站”向导的“设置”选项卡中,可以找到“高级预编译设置”对话框(默认情况下关闭)。请注意,要在“文件发布选项”下拉菜单中找到(不显眼的)“配置”链接...图片如下:enter image description here

1
我没有预编译,但我尝试了一下,有趣的是得到了一个App_Code.pdb和App_global.asax.pdb,但我的其他pdb文件并没有被复制。 - levmatta

0

我已经搜索了这个问题并尝试了所有的技巧,但都没有起作用。

唯一有效的方法是复制 bin 文件夹,然后删除其中所有文件并重新构建。在发布时,我遇到了一个缺少 .dll 文件的新错误,但我在备份文件夹中找到了它。当我将它复制到 bin 文件夹中后,终于能够成功发布了。


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