Проблема в том, что программа работает нормально при использовании Visual Studio, но когда я ее публикую, она продолжает сообщать мне об этой ошибке. :
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.ArgumentNullException: Value cannot be null. (Parameter 'path1')
at System.ArgumentNullException.Throw(String paramName)
at System.IO.Path.Combine(String path1, String path2)
at InteropDotNet.LibraryLoader.InternalLoadLibrary(String baseDirectory, String platformName, String fileName)
at InteropDotNet.LibraryLoader.LoadLibrary(String fileName, String platformName)
at InteropRuntimeImplementer.LeptonicaApiSignaturesInstance.LeptonicaApiSignaturesImplementation..ctor(LibraryLoader loader)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span1 copyOfArgs, BindingFlags invokeAttr)
И вот мой код:
private void SearchAndCopyPDFsWithOCR(
ing sourceDirectory,
ing targetDirectory,
ing searchTerm,
aTable dataTableValues,
ing partnerPrefix,
ing wetenr)
{
string tessdataPath = @"C:\Program Files\Tesseract-OCR\tessdata";
if (!Directory.Exists(tessdataPath))
{
MessageBox.Show($"A tessdata mappa {tessdataPath} nem található!", "Hiba", Messag
return;
}
if (string.IsNullOrEmpty(searchTerm) || string.IsNullOrEmpty(partnerPrefix))
return;
var filteredDirectories = Directory.GetDirectories(sourceDirectory, $"{partnerPrefix}
// A TesseractEngine csak egyszer jön létre a metódus elején.
using (var ocrEngine = new TesseractEngine(tessdataPath, "eng", EngineMode.LstmOnly))
Я борюсь с этим уже около недели каждый день и думаю, что перепробовал все, чтобы справиться с этим. Возможно, вы, ребята, можете предоставить что-то, что я пропустил.
Очень признателен,
- Я пытался записать параметры каждого Path.Combine, но пути отображались нормально.
- Я пытался сделать обработку исключений if-s для регистрации ошибки, программа не показалась ввести эту часть кода, так что здесь тоже не повезло.
- Проверил, что все параметры имеют значения, отличные от нуля, безуспешно
- Теперь я запускаю Tesseract из предварительной версии -установлена папка на диске C
- Проверил, существует ли какая-то политика для сетевых папок, поэтому дал мой рабочий стол для sourcePathДругие свойства проекта:
- Использование ClickOne для публикации проекта
- Я использую движок Tesseract в метод
// Mappa ellenőrzése és PDF keresés
if (sourceDirectory == null || evszam == null)
{
MessageBox.Show($"sourceDirectory vagy evszam null {sourceDirectory}, {evszam}");
}
else
{
if (sourceDirectory == null || Path.GetFileName(evszam) == null)
{
throw new ArgumentNullException($"{sourceDirectory} vagy {Path.GetFileName(evszam)} nem lehet null.");
}
specificSourceDirectory = Path.Combine(sourceDirectory, evszam);
MessageBox.Show(specificSourceDirectory);
}
if (Directory.Exists(specificSourceDirectory))
{
SearchAndCopyPDFsWithOCR(
specificSourceDirectory,
targetDirectory,
szamlaszam,
dataTableValues,
partnerPrefix,
wetenr);
}
else
{
SearchAndCopyPDFsWithOCR(
sourceDirectory,
targetDirectory,
szamlaszam,
dataTableValues,
partnerPrefix,
wetenr);
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... ct-problem
Мобильная версия