【问题标题】:Finding out why my published dll is different from the one I'm debugging找出为什么我发布的 dll 与我正在调试的不同
【发布时间】:2018-04-15 05:59:09
【问题描述】:

运行 Visual Studio 2013 Ultimate,我有一个大型 .NET MVC 项目,我在调试部分时遇到了麻烦。我在连接到 IIS(在同一台机器上)时对其进行调试,但对于某些项目,我无法让断点绑定。

在调查此问题的过程中,我注意到与 bin 中生成的相比,在同一台机器上发布到 IIS 时,代表我很难调试的项目的特定 dll 的大小是不同的在 Visual Studio 中构建项目时的文件夹。

项目Foo 指项目Bar。 Foo 的发布设置将<LastUsedBuildConfiguration> 设置为BAZ。这是我发布到 IIS 的这个项目。

但是当我使用任何可以想象的构建配置构建 Foo(或 Bar,就此而言)时,它是与 IIS 中的版本不同的二进制文件。

我如何找出原因?

【问题讨论】:

  • 你试过清理你的构建目录吗?
  • 是的,我已经清理过了。
  • 而不是通过找出为什么它不使用与调试配置中相同的库来攻击它。你能找出它正在使用什么以及它来自哪里吗?
  • 如果失败,请复制您的调试库,在项目目录中搜索该库的所有实例并使用调试 .dll 文件覆盖它们
  • 在调试该项目时,您是否尝试过使用与<LastUsedBuildConfiguration> 中的值相同的构建配置?

标签: c# visual-studio iis visual-studio-2012 msbuild


【解决方案1】:

可能发生的情况是您正在发布 DLL 的“发布”版本并且正在调试“调试”版本。 DLL 的 Debug 版本会更大,不会被优化,并且有一个关联的 PDB (symbol) 文件。

【讨论】:

  • 无论构建配置如何,我都无法生成相同版本的 dll。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-09
  • 2020-03-12
  • 1970-01-01
  • 2010-12-10
相关资源
最近更新 更多