获取程序集的原始源代码位置

2024-04-08

有没有办法获取程序集的位置原始源代码通过反射定位?

Warning,我不是在寻找程序集的当前位置,而是在编译源代码时所在的位置。

e.g.

Given: myAssembly.dll
   c:\program files\myapp\myAssembly.dll <- I'm NOT looking for this location. This is its current location.
   d:\dev\myapp\main.cs <- this is the location I want; the location were the source code resided when it was compiled

我从这个开始,但到目前为止我还没有找到该进入哪个兔子洞来获取这些信息。

Assembly.GetExecutingAssembly().GetType("myAssembly.Main").<something>

当 .Net 中发生异常时,您通常会看到引发异常的类的名称以及原始源代码文件的完整路径。这就是我所追求的。我意识到可能需要 .pdb 符号文件才能获取此位置。


该信息存储在 .PDB 文件中。它有两种基本风格,一种是从调试版本获得的完整风格,另一种是stripped您从发布版本中默认获得的一个。剥离的 .PDB 已删除文件和行号信息。特别是为了删除大多数公司认为专有的细节。

项目+属性,构建选项卡,高级按钮,调试信息设置此。 “Full”是正常的调试构建设置,“pdb-only”是生成剥离版本的默认发布构建设置。

支持读取 .PDB 文件数据库帮助 API http://msdn.microsoft.com/en-us/library/windows/desktop/ms679309%28v=vs.85%29.aspx,原汁原味。DIA SDK http://msdn.microsoft.com/en-us/library/x93ctkx8.aspx为其提供了一个更友好的 COM 包装器以及 C# 的常用选择。 CLR 也使用它,这就是您如何在异常的堆栈跟踪中查看文件+行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取程序集的原始源代码位置 的相关文章

  • 为什么 GetThreadTimes 返回

    我试图测量线程中花费的时间以用于进度报告目的 但我从 GetThreadTimes 系统调用中得到非常奇怪的结果 给出以下程序 在 VS 2013 中编译 针对 NET 4 5 using System using System Diagn
  • 使物体跟随旋转且差异很小

    我正在使我的对象跟随另一个对象的旋转 我希望我的对象以很小的差异旋转 也就是说 从当前的旋转来看 它不应该与另一个对象完全旋转 其旋转应该存在差异 使其旋转主要对象旋转的 10 我该怎么做呢 using System Collections
  • 如何订阅 C++/CX 中 Windows 运行时组件内引发的事件?

    我在 Windows 运行时组件 用 C 编写 中有一个引发事件的类 我无法弄清楚如何在引用该组件的 C CX 应用程序中订阅这些事件 C 代码 在 Windows 运行时组件中 public sealed class Messenger
  • 时间跨度格式[重复]

    这个问题在这里已经有答案了 当您将时间跨度声明为以下形式时 如何优雅地格式化时间跨度以表示 1 小时 10 分钟 TimeSpan t new TimeSpan 0 70 0 我当然知道你可以为此做一些简单的数学计算 但我有点希望 NET
  • C++ Socket选择和接收问题

    下面是我在套接字编程方面遇到问题的代码片段 在此之后select调用 如果我不在第 9 行放置睡眠 则在 Windows XP 上 第 11 行收到 1 个字节 而不是从服务器作为整数发送 4 个字节 当我检查 xmlSize 时 它 被设
  • 使用加法求阶乘

    我正在尝试创建一个 C 代码来查找整数的阶乘 以便我可以将代码转换为汇编语言 我的代码似乎将第二个整数 乘 两次 即 5 4 4 3 我似乎无法找出原因 请帮助 define N 5 int main int j 0 int i 0 int
  • 为什么 new String("Hello") 在 C# 中无效?

    制作背后的逻辑 原因是什么 String s new String Hello World 在 C 中非法 错误是 string String char 的最佳重载方法匹配有一些无效参数 我对 API 文档不感兴趣 我感兴趣的是为什么这是非
  • 如果启用优化,JIT 是否会始终内联此方法?

    我并不期望得到明确的 是 或 否 您可能拥有的任何知识我都会考虑作为答案 private String CalculateCharge Nullable
  • 创建一个重复 char n 次的编译时字符串

    我正在使用这样的函数将数据导出到 xml 文件中 注意 愚蠢的示例 void write xml file const std string path using namespace std string view literals Use
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • 用于将 cython 中的许多 C++ 类包装到单个共享对象的项目结构

    我在文档 邮件列表和这个问题在这里 https stackoverflow com questions 10300660 cython and distutils 但我想得到一个更直接的答案来解决我的具体情况 我正在通过尝试一点一点地包装我
  • SELECT 语句会受到 SQL 注入攻击吗?

    实际上有2个问题 我知道我必须尽可能多地使用存储过程 但我想知道以下内容 A 我可以从 SELECT 语句 例如 Select from MyTable 获得 SQL 注入攻击吗 B 另外 当我在 ASP NET 中使用 SQLDataSo
  • 如何重新解释或转换具有已知内存布局的对象而不出现未定义的行为

    我有一个矩阵类transposedView 我多年来一直使用该方法作为行向量和列向量之间的 零开销 转换 template
  • 无效的超链接:格式错误的 URI 作为超链接嵌入到文档中

    我在我的应用程序中使用 OpenXml 命名空间 我用它来读取 Excel 文件中的 XML 这对于某些 Excel 文件工作正常 但在其他文件上我收到运行时错误 无效超链接 格式错误的 URI 作为超链接嵌入到文档中 我在下面一行得到运行
  • 为什么 C# 不支持类构造函数中的隐式泛型类型?

    如果编译器可以推断出泛型类型参数 C 并不要求您指定它 例如 List
  • IEnumerable 的随机顺序

    我有一个 IEnumerable 集合如下 var result1 GetResult1 Returns 2 4 5 6 我必须处理元素并以随机方式创建另一个集合 结果应如下 var result2 GetResult2 result1 R
  • 由于索引无效,无法加载计数器名称数据 -Exception

    我使用 C 和 WPF 操作系统是 windows 7 Professional 和 Visual Studio 2012 SQL Server 2012 我在wpf中使用了Devexpress Grid 我想使用 ADO Net 服务器模
  • 使用 async/await 抛出和捕获异常的正确方法

    全部请拿下面的二维码 Task
  • 将双精度数转换为十六进制 - 代码审查

    我有以下代码 它采用双精度值并将其转换为十六进制表示形式 反之亦然 我想知道它是否存在任何潜在的问题 我是否忽略了某些事情 double hex to double2 string hexString unsigned char byte
  • STL Map 或 HashMap 线程安全吗?

    我可以在多线程程序中使用映射或哈希图而不需要锁吗 即它们是线程安全的吗 我想同时在地图中添加和删除 那里似乎有很多相互矛盾的信息 顺便说一下 我在Ubuntu 10 04下使用的是GCC自带的STL库 编辑 就像互联网的其他部分一样 我似乎

随机推荐

  • 了解 Firebug 探查器输出

    我一直在尝试使用 Firebug 的分析器来更好地理解我们所看到的一些 JavaScript 性能问题的根源 但我对输出有点困惑 当我分析一些代码时 分析器会报告配置文件 464 323 毫秒 26 412 次调用 我怀疑 464 323
  • 操作员 '??'不能应用于子类类型的操作数

    以下代码给出了 Main 函数第二行标题中的错误 public class P public class B P public class A P void Main P p GetA GetB public A GetA return n
  • iOS 11 AVPlayer 在 KVO 时崩溃

    我在使用时遇到了奇怪的崩溃AVPlayer播放远程视频 从崩溃登录Fabric 应用程序在系统线程上崩溃 com apple avfoundation playerlayer configuration 崩溃日志如下 Crashed com
  • perl:一个父母,许多孩子 - 父母中的单管道阅读器?

    在perl中是否可以以这样一种方式建立一个管道 即父管道只有一个READER管道 并且许多子管道在它们启动 退出时写入它 典型的食谱代码是 usr bin perl w pipe2 use pipe and fork so child ca
  • 检索 iOS 中所有联系人的电话号码

    到目前为止 我看到了如果我显示一个选择器 则可以获取多个电话号码的方法 以便用户可以选择人员 然后获取电话号码 我想要的是检索所有联系人的号码 有可能吗 试试这个它适用于iOS 6 以及 iOS 5 0 或更早版本 示例项目演示 https
  • 如何在Vim终端模式下复制粘贴?

    我经常想从 terminal窗口到普通文本缓冲区 此刻我exitshell 会话并从历史记录中复制 一定有更好的方法 Copy To copy from a terminal window press CTRL W N This is a
  • 提交表单时Spring绑定异常

    卡住了 不知道为什么 Spring Form 在 get 中预填充时无法成功提交 给出绑定问题 Request call loadForm 但在方法中填充时工作正常setupFormObject with ModelAttribute注释标
  • wkhtmltopdf 和基于表单的身份验证

    我有一个使用基于表单的身份验证的应用程序 我正在尝试获取应用程序中页面的副本并使用 wkhtmltopdf 将其保存为 PDF wkhtmltopdf 已安装并且工作正常 我可以从应用程序内成功调用它来生成另一个网站的 PDF 无需身份验证
  • Rails has_many 自引用

    我的帐户模型如下 简化 class Account lt ActiveRecord Base attr accessible account number display name master account id has many ch
  • 如何在python中更改iBus输入法?

    我正在编写一个 Vim 插件来设置 iBus 引擎和输入法 到目前为止 我可以使用以下代码更改引擎 function im setEngine name python lt lt EOF try import ibus vim bus ib
  • .Net 3.5 日志记录

    我是一个相当新的 C 程序员 我想知道是否有人可以向我提供有关如何在现有解决方案中使用日志框架的更多信息 如果您这么称呼它 我正在尝试记录我正在做的项目 我想知道有哪些好的和简单的框架以及它们应该如何实现 我应该研究一个特定的主题吗 我还没
  • MongoDB 架构设计 - 实时聊天

    我正在启动一个项目 我认为该项目特别适合 MongoDB 因为它提供的速度和可扩展性 我目前感兴趣的模块是与实时聊天有关的 如果我要在传统的 RDBMS 中执行此操作 我会将其分为 频道 一个频道有很多用户 用户 一个用户有一个频道但有多条
  • 如何阻止 Maven 尝试访问 http://repo.maven.apache.org?

    开发机无法上网 大约60秒超时 当我尝试构建时 我看到 Downloading http repo maven apache org maven2 com google gsa connector 2 8 0 gsa connector 2
  • Cloud Functions Firebase v1.0 不会初始化

    随着 Firebase 云功能的最新更新 我在初始化应用程序以及数据库引用时遇到错误 第一个错误 以下应该基于 Firebase 函数 v1 0 文档和示例进行工作 https github com firebase Friendlycha
  • 确定合时坐标

    今天金星的下合 虽然由于太阳偏北而仍然可以观测到 激发了 pyEphem 的以下研究 确定金星与太阳下合的日期 pyEphem 中是否有金星和太阳之间 劣 合相的搜索功能 确定该日期金星的黄道纬度 那应该很容易 对过去 100 年和未来 1
  • 按自定义顺序对对象数组进行排序

    我有一个对象数组 其中有一个名为 CODE 的属性 ID 168 NAME First name CODE AD ID 167 NAME Second name CODE CC ID 169 NAME Third name CODE CCM
  • 如何更改Android弹出菜单的背景颜色

    我通过查询数据库生成菜单的每个选项 这是我的代码 final PopupMenu popupMenu new PopupMenu getBaseContext v SQLiteDatabase db AdapterDb getReadabl
  • 使用 Create-React-App 进行 VSCode 调试

    我想设置 VS Code 来调试使用 create react app 创建的 React app 我尝试过这个配置 version 0 1 0 configurations name Launch node type node reque
  • 用什么来做多重相关?

    我正在尝试使用 python 来计算响应数组和一组预测变量之间的多重线性回归和多重相关性 我看到了计算多元线性回归的非常简单的示例 这很容易 但是如何使用 statsmodels 计算多重相关性呢 或与其他任何东西一起作为替代 我想我可以使
  • 获取程序集的原始源代码位置

    有没有办法获取程序集的位置原始源代码通过反射定位 Warning 我不是在寻找程序集的当前位置 而是在编译源代码时所在的位置 e g Given myAssembly dll c program files myapp myAssembly