【问题标题】:How to decompile/extract(cshtml--(razor view)) from dll如何从 dll 中反编译/提取(cshtml--(剃刀视图))
【发布时间】:2026-02-13 09:50:01
【问题描述】:

Generated project view.dll)我试过几个产品——dotPeek、JustDecompile和.Net Reflector,它们都擅长从dll中反编译cs文件。但是,我正在寻找一种可以从 dll 中提取视图(cshtml 文件)的工具。

有什么办法,我可以取回视图,我得到的只是(视图)dll。

谢谢

【问题讨论】:

  • Cshtml 文件不会被编译成 dll。你的理解是错误的。您甚至可以使用记事本打开 cshtml 文件。
  • 你在开玩笑吗? .Cshtml 文件未编译成 dll。
  • @Anonymous 当然,它们是 dll 的一部分。您可以选择不将它们存储在 dll 中,因此您可以随时更新,但默认情况下,Razor 视图存储在 dll 中。文档:learnrazorpages.com/publishing/publish-to-iis#published-output。但是,它们可能不在 OP 的特定 dll 中:)
  • @Jawad 是的,但是如果我只剩下 dll 怎么办。无论如何要从 dll 中获取 cshtml 吗?我的项目备份不见了,我只剩下在 IIS 服务器中部署的 dll。而且我很确定,视图是在 dll 中编译的。
  • 我们在这里缺少一些上下文。您是指新版本的定制视图还是内置视图?默认情况下,cshtml 不会编译成 DLL,除非有人指定它是这样的

标签: c# asp.net-mvc model-view-controller dll razorengine


【解决方案1】:

昨天发生在我身上,这就是我所做的:

使用 ILSpy 反编译我的 .Views.dll - 在 Views_Home_index 上使用“保存代码...”并获得 AspNetCore.Views_Home_Index.cs 文件。

在文本编辑器中打开文件并从公共 override async Task ExecuteAsync() 方法开始 - 有一堆 WriteLiteral()__tagHelperExecutionContext.AddHtmlAttribute() 方法基于您的 .cshtml 文件,看起来很糟糕,但最终很容易“反编译” .主要是复制WriteLiteral()的所有内容,用文件顶部定义的属性替换.AddHtmlAttribute()

我的视图很小,里面主要是html/js,所以没用多久。

【讨论】: