【问题标题】:sitefinity pluggable modules deployment without having to copy dll's无需复制 dll 即可部署 sitefinity 可插拔模块
【发布时间】:2013-10-28 18:42:31
【问题描述】:

这里有一些背景。

如果我们想要 Sitefinity CMS 的自定义模块和小部件,我们可以

  1. 将模块直接构建到 SitefinityWebApp 项目中(使用 Thunder 扩展)
  2. 构建可插入的 dll(适用于模块和小部件)并使其可自行安装。(这里是有关如何执行此操作的链接 http://www.sitefinity.com/blogs/peter-marinovs-blog/2013/03/20/creating-self-installing-widgets-and-modules-in-sitefinity)

可插拔模块基本上可以复制到 sitefinityWebApp 实例上的 bin 文件夹中,所有内容都会自动安装。

(通过连接到 PreApplication 启动事件并安装我们想要的模块和小部件来实现)

问题:

什么是我们无权访问服务器?您可以将这些 dll 打包成一个 zip 文件并将其导入 SiteFinity 实例后端网站吗?它是否解压缩文件并将所有 dll 复制到 bin 目录中?我猜不是。

如何在 sitefinity 实例中部署第三方模块和小部件,而无需手动将 dll 复制到 bin 文件夹?

如果您需要更多信息,请给我留言。

任何帮助表示赞赏。谢谢。

【问题讨论】:

  • 我不知道有什么方法可以通过网站将 dll 上传到 bin 文件夹;只要您尝试这样做,应用程序就会重新启动(至少这是我的理解)。 dll 必须通过 FTP RDP 或其他一些部署机制上传。我想您可以将它们上传到一个文件夹并使用反射加载它们,但我认为这不是您想要的。据我所知,必须发布 dll。

标签: c# asp.net module content-management-system sitefinity


【解决方案1】:

首先,我想指出的是,迅雷可以在自己的程序集中创建一个Empty Custom Module,其中包含博客文章中描述的自安装代码。您无需手动操作。

现在,关于您的问题。您是否尝试过使用 Sitefinity Thunder 的新 Code Deploy 功能?您可以使用它为您手动注册它们,或者您可以使用它来复制您的程序集并让它们注册自己的模块,在我看来这是更好的选择。您可以使用模块的 Install/Upgrade/Initialize 方法来安装或注册自定义模块所需的所有内容。请注意,代码部署要求您拥有站点同步许可证。

如果您没有站点同步许可证,则需要手动复制程序集。

【讨论】:

  • 这也是我的理解。但鉴于我们无权访问服务器(和数据库),我认为即使是站点同步也无济于事。我们所拥有的只是 xxxCompany.com/Sitefinity 的管理员凭据。一种方法可能是拥有一个单独的管理小部件,它基本上是一个文件上传器......通过它我们可以上传包含新模块和小部件的 dll 并将它们复制到 bin 文件夹(当然检查它们以确保它们是合法的)..并让 dll 发挥自我安装的魔力。听起来对吗?
  • 我不是在谈论站点同步。这是一项新的 Sitefinity Thunder 功能,需要相同的许可证。如果你在服务器上安装了 Sitefinity Thunder 的模块,它会做几乎相同的事情。您打开包含带有模块的项目的本地解决方案,然后使用 Thunder 连接到远程服务器。它将构建项目,获取它的程序集并将其发送到远程服务器的 ~/bin 文件夹。您可以执行与您描述的相同的操作,但请务必正确测试它。在 ~/bin 文件夹中进行更改应该会导致您的应用程序重新启动。
  • 好的。我现在明白了。我混合了我得到的 2 个响应。谢谢你的帮助。但不确定我们是否可以得到新的迅雷功能,如果它花费更多的钱:)。谢谢你的信息。另外,您如何看待使用与 Thunder 模块完全相同的文件加载器(Assembly Manager)小部件的方法。实际上我做了一个 POC,它工作得很好......有任何 cmets 吗?
  • 就像我说的 - 正确测试它。请记住三件事:1)使用权限来限制访问。您可能不希望每个人都能使用它。 2)它可能会导致您的应用程序重新启动。您不应该在生产服务器上轻易使用它,尤其是在高峰时段。 3) 如果您使用 NLB,则使用它是一个坏主意,因为您需要分别上传到每个服务器。除此之外,只要 IIS 应用程序池对 ~/bin 文件夹具有写访问权限,您就应该没问题。祝你好运,我希望我有所帮助! :)
猜你喜欢
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多