【问题标题】:MSBuild does not build the PDB filesMSBuild 不构建 PDB 文件
【发布时间】:2014-08-19 02:27:48
【问题描述】:

我有一个从 VS2010 转换为 VS2012 的解决方案。在 Release 版本中,我希望它生成 PDB 文件和完整的调试符号,因为我需要在生产环境中运行远程调试。

所以我将Debug Info 设置为full 用于发布配置。我还确认项目清单文件中有以下内容:

<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimized>true</Optimized>

但是当我运行 MSBuild 时,它创建的包不包含 PDB 文件。但是,如果我将 Visual Studio 的发布功能与发布配置一起使用,我最终会在目标 Web 服务器上获得 PDB 文件。 Build 命令有什么问题?

C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe "C:\MyWebApp.csproj"  
  /t:rebuild;package 
  /p:OutPath="C:\MyWebApp\obj" 
  /p:OutputPath="C:\MyWebApp\bin" 
  /p:Configuration=Release 
  /p:Platform=AnyCPU

我尝试关闭 Optimized 位,但没有帮助。

【问题讨论】:

    标签: asp.net visual-studio-2012 msbuild


    【解决方案1】:

    您可以直接从命令行访问它:

    msbuild.exe "C:\\MyWebApp.csproj" /t:rebuild;package /p:OutPath="C:\\MyWebApp\\obj" /p:OutputPath="C:\\MyWebApp\\bin" /p:Configuration=Release /p:Platform=AnyCPU /p:DebugType=pdbonly

    【讨论】:

    • 我试过了,但仍然没有生成 PDB 文件。在这里提到的项目清单中我什至没有ExcludeGeneratedDebugSymbolstackoverflow.com/questions/15562311/…
    • 你试过没有额外的属性...(OutPath,OutputPath,...)?
    • 我很确定,在引用属性值时,您必须转义反斜杠。 C:\Foo.csproj 引用时变为 "C:\\Foo.csproj"
    • 我试过没有额外的属性,但仍然没有 PDB。
    • 反斜杠对我有用,我的实际输出路径是网络共享,我在那里得到了最终的 zip 文件。
    【解决方案2】:

    尝试添加

    /p:DebugSymbols=true

    /p:DebugType=full

    如果您要发布 Web 应用程序,那么您还应该添加:

    /p:ExcludeGeneratedDebugSymbol=false

    【讨论】:

    • 添加/p:DebugSymbols=true为我工作
    猜你喜欢
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    相关资源
    最近更新 更多