2个应用程序(1是COM可见的),在不同的日期部署了共享的公共参考库

本文关键字:部署 日期 共享 参考 应用程序 COM 2个 | 更新日期: 2023-09-27 18:14:06

我有2个独立的应用程序运行相同的MyCommon DLL的(不同版本)

在平均时间MyCommonLib.dll更新,现在它的版本是2.0.0现在用Project_1创建解决方案b,它有MyCommonLib.dll(版本2.0.0)的参考,复制/更新MyCommonLib.dll v2.0.0在Project_A可执行/DLL文件夹


In SolutionA
MyCommonLib.dll (version 1.0.0)
Project_B> Reference> Project_A

重点说明:项目B是COM可见的(Windows服务)
在日期1构建并部署Project_B

方案B
- Project_1> Reference> MyCommonLib.dll (version 2.0.0)
-在日期2重新部署解决方案B
-复制MyCommonLib.Dll (v.2)到SolutionA> Project_A文件夹


我有一个应用程序运行,在1事件触发两个应用程序必须执行一些工作。但是它在Project_B上失败了,声明类型Project_B无法加载文件或程序集

在两个应用程序上都使用旧版本时,两个应用程序都运行良好,如果同时构建和部署两个应用程序,两个应用程序都运行良好

谁来帮帮我

2个应用程序(1是COM可见的),在不同的日期部署了共享的公共参考库

// Constructor of > SolutionA >  ProjectB > Calling Class
public New() : base()
{
    AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolve;
}

private Assembly AssemblyResolve(object sender, ResolveEventArgs e)
{
    Assembly ass = null;
    if (e.Name.StartsWith("MyCommonLib,")) {
        string path = Assembly.GetExecutingAssembly.Location;
        path = IO.Path.GetDirectoryName(path);
        path = IO.Path.Combine(path, "MyCommonLib.dll");
        if (IO.File.Exists(path)) {
            ass = Assembly.LoadFile(path);
        }
    }
    return ass;
}
解决