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

2 Application (1 is COM Visible), with shared Common Reference Library deployed on different dates

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

同时 MyCommonLib.dll 已更新,现在版本为 2.0.0 现在使用 Project_1 创建 SolutionB,它在 Project_A Executable/DLL 文件夹上具有 MyCommonLib.dll (版本 2.0.0),Copied/Updated MyCommonLib.dll v2.0.0 的参考


在解决方案A中
Project_A>参考>MyCommonLib.dll(版本 1.0.0)
Project_B>参考>Project_A

注意事项:项目 B 是 COM 可见的(Windows 服务)
在日期 1

构建和部署 Project_B

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


我有应用程序 运行,在 1 次事件中,两个应用程序都必须执行一些工作.. 但它在 Project_B 上失败,说明类型 Project_B 无法加载文件或程序集MyCommonLib,版本=1.0.0 ...

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

请大家帮忙

// 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;
}

已解决