哪个dll是由episerver项目使用的?

时间:2012-04-01 08:25:29

标签: setup-project gac episerver

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

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

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

嗯,所有这一切都让人很困惑。 为什么Episerver将dll放入gac并且不引用它们?在团队中处理对episerver dll的开发的最佳方法是什么?

此外,IF episerver会引用GAC中的ddl,我怎样才能在VS中看到它。我的意思是,参考的属性是什么?

2 个答案:

答案 0 :(得分:2)

基本上,这只是episerver部署决策。我会尝试逐一回答你的每一个问题:

  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 :(得分:2)

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