相关疑难解决方法(0)

在同一文件夹中使用同一程序集的不同版本

我有以下情况

项目A.

 - Uses Castle Windsor v2.2
 - Uses Project B via WindsorContainer
Run Code Online (Sandbox Code Playgroud)

项目B.

 - Uses NHibernate
 - Uses Castle Windsor v2.1
Run Code Online (Sandbox Code Playgroud)

在Project AI的bin文件夹中有dll Castle.DynamicProxy2.dll v2.2和NHibernate dll.现在问题是NHibernate依赖于Castle.DynamicProxy2.dll v2.1而不存在.我该如何解决这种情况.

assemblies reference multiple-versions

63
推荐指数
3
解决办法
4万
查看次数

使用相同dll的2个不同版本?

我已经获得了2个预编译的dll:

Common.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f3b12eb6de839f43, processorArchitecture=MSIL

Common.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=f3b12eb6de839f43, processorArchitecture=MSIL
Run Code Online (Sandbox Code Playgroud)

API差异示例:

API

我正在尝试将两者加载到一个项目中,以执行以下操作:

extern alias v10;
extern alias v20;

private static void UpgradeUser()
{
    // Load old user
    var userOld = new v10::Common.Data.UserData();
    userOld.loadData("user.dat");

    // Create new user
    var userNew = new v20::Common.Data.UserData();

    // Copy properties  
    userNew.FirstName = userOld._firstName;
    userNew.LastName = userOld._lastName;
    userNew.Age = userOld._age;

    // Invoke method from v10 and v20 API
    userOld.version();
    userNew.DisplayVersion();

    if (userNew.GetUserInfo() != userOld.getInfo())
    {
        throw new Exception("Discrepencies in upgrade ");
    }

    Console.WriteLine("Upgrade done!");
} …
Run Code Online (Sandbox Code Playgroud)

.net c# versioning visual-studio-2015

21
推荐指数
1
解决办法
2万
查看次数