У вас нет папок в DLL. Сборка .Net (DLL) содержит только :
- Манифест сборки
- Объявления типов (для использования другими библиотеками)
- Код MSIL, который реализует эти типы (скомпилированный код, который фактически выполняется)
- двоичный файл / строка ресурсы
То, что вы, вероятно, хотите использовать, это ресурсы, то есть встраивание файловиз вашей структуры проекта Visual Studio в выходную сборку.Они могут и будут организованы с использованием пространств имен, которые напоминают папки.Для этого вы можете выбрать BuildAction Embedded Resource
в свойствах файла для отдельных файлов (выберите файл и R-Click> Свойства).К этим ресурсам можно получить доступ из кода , используя
Assembly.GetExecutingAssembly().GetManifestResourceStream("TessDll.tesseract-master.1153.your-file-here")`.
Я не уверен насчет .
в названии вашей папки, возможно, вам следует избегать этого.Если вы хотите встроить все содержимое папки в качестве ресурса, вам нужно отредактировать файл .csproj, как описано здесь .
Я рекомендую загрузить ILSpy - этоинструмент, с помощью которого вы можете открывать сборки .net и просматривать, что внутри.
В качестве альтернативы, имейте в виду, что вам не нужно встраивать свои ресурсы в свою сборку, чтобы они были доступны в выводе bin
папка.Вы можете просто установить для свойства Copy to Output Directory значение true
в свойствах файла, а затем получить доступ к файлу, используя исходный подход с AppDomain.CurrentDomain.BaseDirectory
.Опять же, вам придется сделать это для каждого отдельного файла вручную, но вы также можете сделать это для всей папки, отредактировав файл .csproj с подстановочными знаками:
<ItemGroup>
<Content Include=".\tesseract-master.1153\**">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>