c# - pdb 文件在 PostSharp 后丢失

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

我使用的是 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进程从 obj\Debug 移动 dll 和 pdb 文件文件夹到 obj\Debug\Before-PostSharp文件夹,稍后在 obj\Debug 中生成一个新的 dll文件夹,但生成新的 pdb 文件。

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

最佳答案

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

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

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

关于c# - pdb 文件在 PostSharp 后丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31057970/

相关文章:

git - 为什么github允许无法识别的作者提交

c# - POCO/Domain 对象是否可以注入(inject)依赖项

c++ - 有什么方法可以用 MSVS2015 模拟编译时双常量吗?

c++ - 使用 VS2015 CLR 在 CDialog 派生类上创建返回 0,在 VC++ 6 中运行良好

c++ - pdb 文件,检查磁盘空间不足、路径无效或权限不足

visual-studio-2010 - 如何告诉 TFS 部署包含在一个解决方案中的多个 web 应用程序?

msbuild - 如何在MSBuild中并行运行任务

c# - 在 Using 语句中从 DataLayer 返回 DataReader

c# - 如何通过 SOAP 使用 WCF 服务将大型 Zip 文件 (50MB) 传输到任何客户端?

c# - 生成一批随 secret 码