Rád bych se zeptal na věc, na kterou jsem včera narazil a docela nemile mě překvapila.
Programuju v .NET 4.0 aplikaci, která načítá data po modbusu. Bohužel potřebuju 2 knihovny, přičemž obě mají stejný namespace, ale každá má trochu jiné metody (jednu používám pro komunikaci se zařízením 1, druhou pro komunikaci se zařízením 2). Problém nastal v tom, že se obě knihovny jmenovaly stejně - Modbus.dll. Druhou jsem tedy normálně přejmenoval na Modbus2.dll (aby mi VS neřvalo, že už tam jednu assembly s názvem Modbus mám), a obě nahodil jako referenci k projektu (Modbus, Modbus 2). Oběma referencím jsem nastavil alias, následně do tříd dal
extern alias "název aliasu dll, kterou měla třída použít";
Po zbuildování proběhlo všechno v pořádku, ale jakmile se měla udělat instance jedný z těhlech dvou tříd, spadlo to na FileNotFoundException.
Problém jsem vyřešil tak, že jsem na netu našel zdrojáky k 1. knihovně, přepsal namespacy (možná i zbytečně), assembly name a zbuildoval si novou knihovnu.
Je mi jasný, že přejmenováním dll nedojde ke změně assembly name, ale proč to nešlo přes ty aliasy? Díky