【发布时间】:2017-12-22 06:52:27
【问题描述】:
在 C# 中使用 [CallerFilePath] 属性会导致在编译的 CIL 二进制文件中包含完整的本地文件路径,例如 C:\Users\MyName\Projects\Project\File.cs。
有没有办法在编译的二进制文件中修改这些字符串?也许作为删除“C:\Users\MyName\Projects\”的构建步骤,但将剩余部分留作日志记录?
在我的脑海中,我只能想到ildasm'ing 它,搜索和替换,然后ilasming 它 - 但这似乎是一个相当复杂的过程。我还发现了对 STRINGTABLE 资源的引用,但没有任何关于如何对其进行后处理的实现细节。
有几个建议的重复项,包括this one,但我不认为这是一个重复的问题,因为这个问题专门指的是[CallerFilePath] 属性,而不是指向调试配置的相关字符串pdb 文件。
【问题讨论】:
标签: c# reflection compilation cil