【问题标题】:Can't find code behind files in Sitecore File Explorer在 Sitecore 文件资源管理器中找不到文件背后的代码
【发布时间】:2015-07-21 20:58:11
【问题描述】:

当我从 Sitecore 文件管理器查看 ascx 文件时,它在标题中显示类似 CodeBehind="Promo Downloads.ascx.cs 的内容,但它似乎不存在。有一个 asp:Literal 控件我在试图找出它的来源。

【问题讨论】:

  • 一般来说,代码在被放置到站点之前会被编译,因此,.cs 文件将无法通过文件资源管理器访问。所有的代码都被编译成一个DLL文件。如果您有权访问源代码,则需要在那里找到Promo Downloads.ascx.cs。如果您由于某种原因无法访问源代码,您可以使用 dotPeek 或 JustDecompile 之类的工具并加载您的项目 DLL,然后在那里找到 Promo Downloads 类的代码。

标签: asp.net sitecore ascx asp-literal


【解决方案1】:

.cs 文件被编译成 dll,并且将/不应该在使用模型背后的代码的 Sitecore 解决方案中可用。仅当您使用旧代码文件模型时才会发生这种情况。

如果您想查看此代码,则需要查看原始源代码或反编译 dll。

要反编译 URL: dll 将位于 /bin 文件夹中。要找出哪个 dll,请查看 .ascx 文件中的命名空间 - dll 的名称应该是命名空间的第一部分。

找到 dll 后,使用 dotpeek https://www.jetbrains.com/decompiler/ 检查代码。

【讨论】:

  • 这很有帮助。非常感谢你。现在我只想复制 ascx 文件并更改 .cs 中的一小部分代码(从 .dll 反编译)。做这个的最好方式是什么。我不熟悉编译。我需要创建自己的 .dll 并将其包含在 bin 文件夹中吗?
  • 最好创建一个新的dll。创建一个新的 Visual Studio 空 Web 项目,将一个新的 ascx 文件添加到解决方案中。从现有的 ascx 文件中复制标记并将其放置在此 ascx 中,添加来自反编译器的代码后面的代码并添加到 ascx.cs 文件中。确保 ascx 和 cs 中的命名空间声明相同。您可能需要在项目中添加对 Sitecore.Kernel.dll 的引用才能构建它。构建完成后,您可以将 dll 复制到 bin 文件夹并在 Sitecore 中注册新的子布局
  • 如果您不熟悉 c#、visual studio 和 Sitecore,这可能是一个陡峭的学习曲线,但请按照上面的说明进行操作。
猜你喜欢
  • 1970-01-01
  • 2016-06-02
  • 2018-02-04
  • 1970-01-01
  • 1970-01-01
  • 2020-03-17
  • 1970-01-01
  • 2017-09-30
  • 1970-01-01
相关资源
最近更新 更多