pdb 文件在 PostSharp 后丢失

pdb file is mising after PostSharp

我使用的是 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 文件是 not generated.

我的一些 dll(似乎在 运行dom 中)会发生这种情况并且似乎不可靠,因为在其他机器上所有 pdb 文件都已正确生成。

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

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

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

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

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