这是我的第一篇文章,所以这里......
我已经构建并在生产中使用了一段时间的 ac# .net 类库。该项目(使用 .net 框架 3.5,输出类型类库,强命名)没有任何非框架/标准引用。它被设置为用作 COM 组件,我们将它用于经典的 ASP 网站。要部署,我将 Build -> Configuration Manager 设置为 Release,构建 bin/release/PrintJob.dll 文件并将其复制到我们的 Web 服务器。然后我使用 regasm "c:\path info\PrintJob.dll" /tlb /codebase 在服务器上注册它。那时,我们的经典 ASP 站点可以成功地创建对象实例并使用它的功能。
今天,我的任务是使用第 3 方 .net 组件实现一项新功能(加密/解密)。我更习惯于使用 ASP.NET 应用程序,以便使用类库和 COM 组件。所以我更新我现有的项目,就像我更新一个网络项目一样。我的电脑上有新的 dll,我首先必须给它一个强名称,这样我的类库才能接受它,我在我的应用程序中添加对 customCrypto.dll 文件的引用,在我的类文件中引用命名空间),测试它,构建它,它在本地运行良好。
我正在尝试使用与以前相同的方法来部署它。我去 bin/release/ 文件夹,将 PrintJob.dll 文件复制到我的 Web 服务器,注册它,当我的网站现在尝试使用它时,它会抛出一个异常,它找不到我的 customCrypto.dll文件(例外显示完整的强名称组合属性)。
所以我的问题是我这样做正确吗?在 Web 项目中,customCrypto.dll 文件将在发布期间自动与我的站点一起移动。所以dll自动结束,项目没问题。但是使用这个类库,我是否还需要将 customCrypto.dll 文件复制到其他服务器?当构建发生时,为什么我的 PrintJob.dll 程序集没有在内部包含此功能。如何让 COM 组件 PrintJob.dll 在部署时能够使用 customCrypto.dll?由于第 3 方 customCrypto.dll 组件是一个 .net 组件,我是否应该以某种方式将其添加到机器中并以另一种方式与我的应用程序一起使用?
我花了一整天的时间试图找到对此的引用,但我能找到的只是更直接的问题,比如如何强命名程序集、将其添加为引用等。非常感谢任何帮助。