【问题标题】:which dll's are used by an episerver project?episerver 项目使用哪些 dll?
【发布时间】:2012-04-15 07:37:43
【问题描述】:

episerver 安装将 episerver 程序集放在 GAC 中,我在 C:/windows/assembly 中看到它们。

此外,episerver 安装后,所有的 episerver dll 都存在于 C:/Program files/Episerver 中。

当通过episerver部署中心或Visual Studio 2010使用episerver模板创建episerver项目时,我看到新创建的项目的bin文件夹包含很多episerver-dll,这并不奇怪。我想它们是从 C:/Program files/ 复制的。如果我在 Visual Studio 中打开项目,我会看到引用的是那些 dll,而不是来自 GAC 或 C:/program files/episerver 的那些 dll。

嗯,所有这些都非常令人困惑。 为什么 Episerver 将 dll 放在 gac 中而不引用它们?为团队开发处理对 episerver dll 的引用的最佳方式是什么?

此外,如果 Episerver 会引用 GAC 的 ddl,我将如何在 VS 中看到它。我的意思是,引用的属性是什么?

【问题讨论】:

    标签: setup-project gac episerver


    【解决方案1】:

    基本上,这只是表观服务器部署决策。我会尝试一一解决你的每一个问题:

    1. 当您希望用户从“.NET Framework”选项卡访问引用对话框中的 dll 时,将 dll 放入 GAC 非常有用。假设您正在创建一个简单的项目(不是 episerver 之一)并且想要添加 episerver dll。您无需在硬盘驱动器上查找它们,而是参考 GAC 指出的那些。这很容易开发。
    2. 为什么不引用 GAC dll?这是为了更轻松地使用 dll 部署您的解决方案。假设您正在将解决方案部署到服务器。服务器在 GAC 中不会有 Episerver dll(无论如何也不应该有)。所以他们可能会设置“copy local = true”属性以将 dll 复制到输出文件夹中,从而使您的解决方案具有可移植性。此外,GAC 程序集没有“引用” - GAC 仅包含副本以备不时之需,并且引用已添加到带有 dll 的“程序文件”文件夹中。
    3. 开发团队的最佳方式是使用 GAC 或在存储库中定义某种“第三方”(“externals”)文件夹并将您的 dll 放在那里(并从那里引用)。第一种方法需要在每台开发机器上安装 Episerver,第二种方法会占用存储库中的一些空间。
    4. 由于不能引用 GAC 程序集(实际上可以引用,但令人头疼),结果之间几乎没有区别 - 只是路径不同。

    【讨论】:

    • 感谢您的回答,但第 1 点和第 4 点对我来说似乎是矛盾的。此外,在 VS 中,我在 .NET 选项卡上看不到 Episerver dll,因此第 4 点可能是正确的陈述。第 3 点似乎也与第 4 点相矛盾,或者?
    • 关于第 2 点: Episerver 似乎需要在生产服务器上安装 episerver,因为在 episerver.config 中有诸如 physicalPath="C:\Program Files (x86)\EPiServer\CMS 之类的引用。那是因为 CMS 的文件不在 webroot 下,而是在一个中心位置。这对我来说似乎不是很干净,但我知道它有它的优点。
    • 这可能是我写得不好:) Pp。 1 和 4 - 是的,这是我的错误 - GAC 的程序集没有进入 .net 选项卡。 Pp.3 和 4 - 没有任何关系。当我在第 3 页中说“使用 GAC”时,我的意思是使用 episerver 安装(将库放入 GAC)。 GAC 非常适合部署/使用 - 您不必在输出文件夹中包含 .dll 文件,.NET 会在 GAC 中找到引用。
    【解决方案2】:

    我们通常创建一个单独的目录来存储所有 .dll 文件并从该目录中引用它们。这意味着所有第三方库和episerver-dll。 这样做的最大原因是为了避免新开发人员需要设置项目时的麻烦,以及在引用 GAC 时避免不同版本之间的冲突。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多