如何从不同应用程序内部编译脚本的程序集的多个版本中定位脚本及其操作

问题描述

先决条件

  1. Web 应用程序 A 有 n 个版本。
  2. 通过 UI 在 A 中创建对象会创建自己的数据库
  3. 当应用程序 A 打开时,代表版本路径的 URL 在点击步骤 2 中创建的对象时会处理相应的版本
  4. 现在,为了避免每次根据客户请求更改代码,系统中已经提供了 C# 脚本添加工具。如果已添加到系统中,则在运行时编译并执行。例如。在 UI 更新结束时,将文件发送到某个位置。此脚本与我们的应用程序 A 具有相同的命名空间,并使用其属性方法
  5. 系统使用反射来编译脚本并创建它的实例并根据其类型调用方法,例如类型是一些接口

要求 我有一个应用程序 B,它更新到数据库,但现在还必须为应用程序 A 执行与 4,5 中提到的相同的操作(这可以是任何版本,在运行时找到的版本和程序集单独存储,可以使用程序集派生。加载)。

所以我使用了反射并以某种方式达到了我可以成功编译脚本但无法继续进行的程度。

一个问题:- 编译的脚本需要应用程序 A 程序集才能执行,因为两者的命名空间相同,脚本内部使用 A 的方法属性。但是这个程序集必须存在于动态位置,即 Appdomain.current.dynamicdirectory,其路径不能预先定义。 只有在 B 的源项目中引用了应用程序 A 的程序集时,才能解决这个问题,但问题是我是否正在处理多个版本,如何将它们全部添加到源项目中

问题

  1. 尝试使用 Appdomain 设置新的 appdomain,但无法使用它,因为我无法修改应用程序 A 以使其具有 proxyObject 或使其可序列化,因为代码已冻结。

  2. 考虑构建一个单独的 Web 应用程序,但问题再次是如何在程序集 A 中制作脚本以调用内容。以便可以执行该过程

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)