У меня есть 3 сборки, Assembly2
ссылка Assembly1
и Assembly3
ссылка Assembly2
.Но вызов метода Assembly2
, объявленного в Assembly1
из Assembly3
, приводит к DllNotFoundException
.
Assembly2 -> Assembly1
Assembly3 -> Assembly2
extern "C" namespace Assembly1
{
__declspec(dllexport) void SomeMethod(){ }
}
_
namespace Assembly2
{
public static class OtherClass
{
[DllImport("Assembly1.dll")]
public static extern void SomeMethod();
}
}
_
namespace Assembly3
{
public static class SomeClass
{
public static void SomeOtherMethod()
{
OtherClass.SomeMethod(); //DllNotFoundException, Cannot load Assembly1
}
}
}
Как решить эту проблему?
Добавить ссылку от Assembly3
до Assembly1
является единственным решением?
Можно ли решить эту проблему слиянием Assembly1
и Assembly2
?(Я понятия не имею, это может что-то сломать)