【问题标题】:C# shared code across multiple websites by moving code up a folder outside websiteC# 通过将代码移到网站外的文件夹上来跨多个网站共享代码
【发布时间】:2013-02-20 15:12:03
【问题描述】:

我在根目录下的同一网络服务器上有 3 个不同的网站。 3 个网站的很多代码都是相同的。

我想看看是否有办法将代码从所有 3 个网站上移一层(网站本身之外)到根目录(每个网站的文件夹都包含在该目录中。

前。根目录是 c:\(我想将文件移动到每个网站并从中访问。网站本身包含在 c:\Website1、c:\Website2 等中。

那么是否可以将代码从 c:\Website1 移动到 c:\ 并从 c:\Website1 网站中的 c:\ 访问它?

如果您需要更多详细信息或我不清楚,请告诉我。

谢谢。

【问题讨论】:

  • 创建一个dll并放入GAC?
  • 在 dll 中设计良好的 BusinessLogic 怎么样? (每个网站都可以引用这个并调用相同的代码..)
  • @PilgerstorferFranz 并使用相对路径引用它,这些路径使用“..\..\..”提升所需的级别数
  • 我宁愿把它放在 GAC 中并引用它(在 VS 中添加对这个 dll 的引用)参见 SO 上的 this post

标签: c# asp.net iis web


【解决方案1】:

我建议将库 DLL 放在 GAC 中。

考虑一下:如果您需要更新库 DLL 以支持一个站点的新功能,但这会引入与其他站点的不兼容性,该怎么办? GAC 支持同一程序集的多个版本,因此您可以根据需要单独更新网站。

【讨论】:

  • DLL 的问题是我们无法访问 QA 和 PROD 服务器来在这些机器上注册 DLL。因此,如果我们可以在 c:\ 创建一个名为“SharedCode”或其他名称的文件夹并引用 .cs 文件和控件,那就太好了。 dll 适用于 .cs 文件,但不适用于控件(以及其他一些不是 .cs 文件的文件)
  • 如何通过更改更新 QA 和 PROD 服务器?你有安装网站代码的安装程序或其他批处理吗?如果是这样,那么安装程序或批处理应该可以访问 GAC。
  • 如果您无权访问这些服务器,您应该负责为您的 Prod/QA 维护人员制作安装程序以完成所需的工作,或者向这些人提供有关如何安装的说明使用GACUTIL
  • 我们构建了一个滚动工具,因此我们无法访问服务器,但我们可以将文件从 DEV(我们有权访问)滚动到 QA,然后再到 PROD。跨度>
  • 可以修改那个工具吗?在这种情况下,这当然是合理的。
【解决方案2】:

根据您要完成的操作,将它们放置在 dll 中可能会产生影响。我建议将它们放在文件夹中:c:\libs\,然后您可以通过以下方式访问它:..\libs\

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 2013-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多