代码之家  ›  专栏  ›  技术社区  ›  JDR Jake Ginnivan

C#从已编译的二进制文件中删除/修改个人文件路径

  •  3
  • JDR Jake Ginnivan  · 技术社区  · 9 年前

    [CallerFilePath] C中的属性导致在编译的CIL二进制文件中包含完整的本地文件路径,例如 C:\Users\MyName\Projects\Project\File.cs .

    有没有办法在编译的二进制文件中修改这些字符串?也许是作为一个构建步骤来删除“C:\Users\MyName\Projects\”,但将其余部分留作日志记录之用?

    在我脑海里,我只能想到 ildasm '使用它,搜索&更换,然后 ilasm STRINGTABLE 资源,但没有关于如何对其进行后处理的任何实现细节。

    this one [调用者文件路径] 属性,而不是调试指向 pdb

    1 回复  |  直到 9 年前
        1
  •  3
  •   svick Raja Nadar    9 年前

    您可以使用 the pathMap option for this .虽然目前没有记录,但它应该从Roslyn 1.1和VS 2015 Update 1开始提供。

    <PathMap>C:\Users\MyName\Projects\Project=Project</PathMap> 到您的.csproj文件。这样做意味着 [CallerFilePath] 会给你 Project\File.cs

    推荐文章