【问题标题】:pdb file is mising after PostSharpPostSharp 后 pdb 文件丢失
【发布时间】:2015-09-12 12:14:15
【问题描述】:

我正在使用 PostSharp 版本 2.1.6.4(也尝试过最新版本 2.1.7.35),有时 pdb 文件丢失并且其中有一个 pssym 文件。

<?xml version="1.0" encoding="utf-8"?>
<Symbols xmlns="http://schemas.postsharp.org/2.0/symbols">
  <Class Class="#1=T:[CrosscuttingLogging]CrosscuttingLogging.Attributes.LogMethodCallStatsAttribute" LimitedLicense="true" />
  <Class Class="#2=T:[RequestLimiter]RequestLimiter.RequestCounterAttribute" LimitedLicense="true" />
</Symbols>

我在构建过程中运行了 procmon,据我所知,postsharp.srv.4.0-x86.exe 过程将 dll 和 pdb 文件从 obj\Debug 文件夹移动到 obj\Debug\Before-PostSharp 文件夹,然后在 obj\Debug 文件夹中生成一个新的 dll ,但一个新的 pdb 文件没有生成

这发生在我的一些 dll 中(似乎是随机的)并且似乎不可靠,因为在其他机器上所有 pdb 文件都正确生成。

【问题讨论】:

    标签: c# msbuild visual-studio-2015 postsharp pdb


    【解决方案1】:

    PostSharp 2.1.x 不支持 Visual Studio 2015 (.NET4.6/Roslyn)。

    .NET 4.6 中的 PDB 格式发生了一些变化。我希望在 PDB 后处理期间 PostSharp 中存在异常,这就是 PDB 未复制到输出文件夹的原因。如果您使用的是 VS2015,则可能会出现此类问题。

    解决方案是不将 .NET4.6/Roslyn 与 PostSharp 2.x 一起使用,或者至少升级到 PostSharp 3.1。

    【讨论】:

    • PostSharp 3.1 仍然存在这个问题;升级到修复了该问题的最新版本(即 4.1.x)。就我而言,它是一个 .NET 4.5 解决方案,我已迁移到 Visual Studio 2015...我还没有使用 .NET 4.6。
    • 我有 postsharp 4.2 并且仍然得到这个。未知的自定义元数据项类型:6.
    • 你用的是哪个4.2版本? PostSharp nuget 包和 PostSharp Tools for Visual Studio 都在 4.2 版本上吗?
    • 我们在 VS2015 更新 3、.NET 4.5.2 和 Postsharp 2.1 中遇到了同样的问题。 (VS2015 Update 1 有效)
    • 不是4.6的问题。从 2015 年开始,所有 VS 中的任何目标框架都会出现此问题。因此,如果您的项目具有 PostSharp 2.x,那么您(作为我)必须永远坚持使用 VS2013。这真糟糕。这就是为什么我再也不会使用 PostSharp 的原因了。
    【解决方案2】:

    我遇到了同样的问题,我从 PostSharp 3.1.46 升级到 3.1.67,它确实解决了我的问题。我确实创建了 .pdb 文件,并且可以再次调试。

    【讨论】:

      【解决方案3】:

      同样的问题,同样的解决方法。从 3.1.51 升级到 3.1.69 并再次生成 pdb。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-28
        • 2014-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-08
        • 2017-01-14
        相关资源
        最近更新 更多