Я разрабатываю надстройку с использованием VSTO для проекта Microsoft, и у меня есть управляемая dll c ++, которая оборачивает неуправляемую dll c ++.Мне нужно развернуть две версии управляемого c ++ dll - одну для 64-битной и одну для 32-битной.Я использую Assembly.LoadFrom (путь) для загрузки соответствующей DLL в зависимости от того, с какой версии Office я работаю.Кажется, что все это прекрасно работает на моей машине для разработки, которая является 64-битной машиной с 64-битным офисом.Ниже приведен код вопроса:
try
{
//This will return true so I know the file exists
bool fileExists = File.Exists(path);
//This will throw a file not found exception
keyModAssembly = Assembly.LoadFrom(path);
}
catch (FileNotFoundException e)
{
}
Я трижды проверил путь, и файл существует и является правильным 32-битным DLL.Все это прекрасно работает на моей 64-битной машине, но в xpmode происходит сбой, когда я пытаюсь протестировать его для 32-битных версий.
Любые предложения будут с благодарностью приняты.
Заранее спасибо.
Редактировать
В ответ на предложение Филиппа о том, что неуправляемая dll может быть не найдена, я загружаю неуправляемую dll в область видимости, используя LoadLibraryW (путь).
// this is not throwing an exception so I know the unmanaged dll is there.
if (!File.Exists(unmanagedPath))
throw new FileNotFoundException();
LoadLibraryW(unmangedlibPath);