PostSharp之后pdb文件正在消失

Dar*_*ker 9 c# msbuild postsharp pdb visual-studio-2015

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

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

对于我的一些dll(看似随机)会发生这种情况并且似乎不可靠,因为在其他机器上所有pdb文件都是正确生成的.

Jak*_*art 17

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

PDB格式在.NET 4.6中有所改变.我期望在PDB后期处理期间PostSharp中存在异常,这是PDB未被复制到输出文件夹的原因.如果您使用的是VS2015,那么可能会出现这种问题.

解决方案是要么不使用带有PostSharp 2.x的.NET4.6/Roslyn,要么至少升级到PostSharp 3.1.

  • PostSharp 3.1仍有这个问题; 升级到修复此问题的最新版本(4.1.x).就我而言,这是我迁移到Visual Studio 2015的.NET 4.5解决方案......我还没有使用.NET 4.6. (2认同)

小智 6

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