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

31
我曾使用VS 2010和VS2008,在我的WCF服务项目中,当我发布网站时,我的.PDB文件总是被复制。但现在,使用VS2012,当我发布Web Site时,不再复制PDB文件了。无论是Debug还是Release,都会创建PDB文件,但在执行发布网站操作时(无论是Debug还是Release),都没有发生任何事情。
我在这个论坛(和互联网)上搜索过。我的解决方案如下: 1)WCF Service Library 项目。 2)WCF Service Web Site。
当我第一次发布时,我需要创建一个profile,并这样做。 当我右键单击WCF Service Library项目并选择属性时,我只能看到应用程序、生成、生成事件、调试、资源、服务、设置、参考路径、签名、WCF选项、代码分析等标签。我没有得到Package/Publish Web和其他我曾经得到的标签。我试图右键单击我的WCF Service Web Site项目,但在属性页面中没有类似的东西。
我甚至尝试将项目添加到我的.pubxml文件中,但那也不起作用。我不认为我需要更新我的调试选项来指定符号位置。我认为我的发布应该像2008年和2010年那样自动完成这些操作。你有什么建议吗?
先谢谢。
2个回答

57
在VS2012网站发布中,默认情况下始终排除符号。为什么?这归结于一个设计问题,即网站项目实际上没有构建配置。如果您在解决方案处于发布模式时查看VS中的配置管理器,则网站项目始终处于调试模式;没有其他选项。这是因为网站项目不是基于MSBuild的,因此不遵循MSBuild配置。
相反,您可以编辑.pubxml文件来告诉它包括符号。尝试添加以下内容:
<PropertyGroup>
  <ExcludeGeneratedDebugSymbol>False</ExcludeGeneratedDebugSymbol>
</PropertyGroup>

这个方法可行。我在另一个帖子中看到过,但是当我尝试时,VS 2012说它不支持<PropertyGroup>部分的该元素。我没有收到错误消息,但自动完成没有将其作为选项提供。我能找到的最接近的是<IncludeDebugSymbolsProjectOutputGroup>或<DebugSymbols>,但它们都不起作用。无论如何,我只是输入了它,即使VS给我错误,这也起作用了。我真希望微软能更好地记录这一点。 - user2823892
2
这也可以在项目选项卡Package/Publish Web下完成(适用于VS2013和VB.NET,尚未验证C#或VS2012)。 - Peter
如果您正在使用MSBuild,例如使用Package配置和Web Deploy,您可以将相同的<PropertyGroup>元素添加到Web项目的*.csproj*文件中。 - Kenny Evitt

16

对我而言,这个方法在发布配置文件中行得通:

<PropertyGroup>
   ...
   <DebugSymbols>True</DebugSymbols>
</PropertyGroup>

或者使用发布向导:

在这里输入图片描述


1
我尝试了几乎所有其他建议,但这个解决了我的问题。非常感谢。 - hakan
如果您不想预编译,这个选项还能用吗?我以前在预编译方面遇到过问题,尽管现在我无法准确地回忆起它们是什么。我认为与 Razor 视图有关。 - jocull

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