Doug

ользую EmguCV для обнаружения лица в моем проекте ASP.NET. Когда я запускаю проект из Visual Studio, все работает правильно.

Затем я опубликовал сборку релиза через профиль папки, а затем просто загрузил эту опубликованную сборку на smarterasp.net.

Приложение работает в общем. Но когда приложение пытается обнаружить лица на изображениях, возникает исключение:

System.AggregateException: One or more errors occurred. ---> System.TypeInitializationException: The type initializer for 'Emgu.CV.CvInvoke' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'cvextern': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
   at Emgu.CV.CvInvoke.RedirectError(CvErrorCallback errorHandler, IntPtr userdata, IntPtr prevUserdata)
   at Emgu.CV.CvInvoke..cctor()
   --- End of inner exception stack trace ---
   at Emgu.CV.Image`2.AllocateData(Int32 rows, Int32 cols, Int32 numberOfChannels)
   at Emgu.CV.Image`2.set_Bitmap(Bitmap value)
   at FaceDetection.FaceDetector.GetFaces(Bitmap img) in D:\Programming\C#Projs\FacelessBrowserTT_DIV_CONTAINER\FaceDetection\FaceDetector.cs:line 22
   at ImageModification.FaceBlurModificator.Modify(Image img) in D:\Programming\C#Projs\FacelessBrowserTT_DIV_CONTAINER\ImageModification\FaceBlurModificator.cs:line 21
   at FacelessBrowserTT.Controllers.HomeController.<>c__DisplayClass4_0.<PreparePage>b__1() in D:\Programming\C#Projs\FacelessBrowserTT_DIV_CONTAINER\FacelessBrowserTT\Controllers\HomeController.cs:line 81
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at FacelessBrowserTT.Controllers.HomeController.<PreparePage>d__4.MoveNext() in D:\Programming\C#Projs\FacelessBrowserTT_DIV_CONTAINER\FacelessBrowserTT\Controllers\HomeController.cs:line 86
---> (Inner Exception #0) System.TypeInitializationException: The type initializer for 'Emgu.CV.CvInvoke' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'cvextern': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
   at Emgu.CV.CvInvoke.RedirectError(CvErrorCallback errorHandler, IntPtr userdata, IntPtr prevUserdata)
   at Emgu.CV.CvInvoke..cctor()
   --- End of inner exception stack trace ---
   at Emgu.CV.Image`2.AllocateData(Int32 rows, Int32 cols, Int32 numberOfChannels)
   at Emgu.CV.Image`2.set_Bitmap(Bitmap value)
   at FaceDetection.FaceDetector.GetFaces(Bitmap img) in D:\Programming\C#Projs\FacelessBrowserTT_DIV_CONTAINER\FaceDetection\FaceDetector.cs:line 22
   at ImageModification.FaceBlurModificator.Modify(Image img) in D:\Programming\C#Projs\FacelessBrowserTT_DIV_CONTAINER\ImageModification\FaceBlurModificator.cs:line 21
   at FacelessBrowserTT.Controllers.HomeController.<>c__DisplayClass4_0.<PreparePage>b__1() in D:\Programming\C#Projs\FacelessBrowserTT_DIV_CONTAINER\FacelessBrowserTT\Controllers\HomeController.cs:line 81
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()<---

Интересно, что у меня есть локальные пути к Home Controller и другим файлам, за исключением:

D:\Programming\C#Projs\FacelessBrowserTT_DIV_CONTAINER\FacelessBrowserTT\Controllers\HomeController.cs
D:\Programming\C#Projs\FacelessBrowserTT_DIV_CONTAINER\FaceDetection\FaceDetector.cs
...

Может в этом причина? Почему в развернутом приложении есть мои локальные пути?

Я никогда не развертывал проект раньше, поэтому на 100% я совершил глупую ошибку. Что я делаю неправильно?

Ответы на вопрос(1)

Ваш ответ на вопрос