У меня есть приложение C# mvc, которое использует dll C++ для некоторых более тяжелых статистических вычислений. Все отлично работает, когда я запускаю его на месте, но на моем развернутом приложении все, что я получаюНе удается получить доступ к DLL-файлу в развернутом проекте C# mvc
Исключения: Невозможно загрузить DLL ' HandCalculatorDll.dll ': Указанный модуль не может быть найден. (Исключение из HRESULT: 0x8007007e)
C# модель использует
[DllImport("HandCalculatorDll.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern bool CalculateWinner(int[] req);
public RoundResult CalculateWinnerDll(List<Hand> hands, List<Card> board)
{
// set up the request
// calls the dll
var success = CalculateWinner(reqArr);
// interpret the response
return result;
}
Я пытался несколько различных вещей, но ничего, кажется, работает для проекта в развертывается. Я попробовал как добавить dll в проект, так и удалить его из проекта (на основе разных рекомендаций). Я пробовал несколько вариантов относительных и абсолютных путей. Я использовал
System.Web.Hosting.HostingEnvironment.MapPath("/bin");
найти abolute путь на хостинг ПК, поставил DLL в том, что бен папку, и использовать этот путь в качестве атрибута DllImport.
К сожалению, большинство рекомендаций/решений, которые я нашел, работают только для локальной отладки. Кто-нибудь знает, как это исправить?
UPDATE Я скопировал весь проект на другой компьютер, чтобы запустить его, и что компьютер бросает ту же «Не удается загрузить DLL» ошибку, которая возникает, когда я публикую. Я запускаю все то же самое на втором компьютере, как на моем домашнем компьютере, и я подтвердил, что файл есть. Теперь я действительно смущен ...
Просто убедитесь, что вы включили эту DLL в свой проект VS? И если да, задали ли вы его свойства так, чтобы они были скопированы в выходной каталог при сборке? –
Да, я пробовал в обоих направлениях. Нет кубиков ... – nurdyguy
После публикации ваша dll в папке bin или нет? И ваша dll 32bit? Попробуйте настроить свой веб-проект на x86 или настроить пул приложений на 32 бит в IIS. – Chris