gpt4 book ai didi

.net - 应用程序在不询问的情况下在 GAC 中安装第 3 方程序集是否是一种不好的做法?

转载 作者:行者123 更新时间:2023-12-02 06:25:48 32 4
gpt4 key购买 nike

场景:我们有一台服务器,上面托管了多个 ASP.NET 网站。几天前,这些网站中有不少因以下错误而“崩溃”:

Warning 44 Could not resolve this reference. Could not locate the assembly "AjaxControlToolkit, Version=1.0.10920.32880, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

经过一些调查,服务器上似乎安装了(商业)CMS 系统,并且添加了第 3 方 AjaxControlTookit到全局程序集缓存。它没有询问,只是添加了它(实际上,它添加了两个 版本:1.0.10618.0 和3.0.20229.0)。这导致了解析冲突,因为有问题的网站在其本地/Bin 目录中引用了不同版本的工具包。

因此,我想我的问题是:您认为此 CMS 在 GAC 中安装这些程序集是否可以接受(尤其是考虑到这些程序集是开源库而不是它们自己的库)?或者是那些“崩溃”的网站是否因为某种原因没有更明确地说明它们如何引用/Bin 文件夹中的程序集?谢谢。

最佳答案

不,我认为这是 Not Acceptable 。

程序集应该放在应用程序的 bin 文件夹中。

安装程序应尽可能在本地进行更改。

在许多情况下,最好的安装程序是根本没有安装程序。至少对于服务器端应用程序。我宁愿有一个 zip 文件 + INSTALL.txt 说:

  1. 系统要求:IIS、ASP.NET 2.0、SQL Server 2005
  2. 创建新的空目录
  3. 将内容解压到目录
  4. 创建指向目录的IIS虚拟目录
  5. 执行foo.sql文件创建数据库
  6. web.config中配置数据库连接字符串

我曾经看到 Windows Installer 被描述为:“Windows 注册表的激进右翼”。觉得挺好玩的。。。

关于.net - 应用程序在不询问的情况下在 GAC 中安装第 3 方程序集是否是一种不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1153128/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com