Лучшие практики для слияния блоков?

Я незнаком с ovirt-engine-sdk и не могу найти на их github никакой информации, чтобы подразумевать, что они поддерживают окна (это не гарантируется, особенно для гемов с нативными расширениями). Но мы можем определенно обойти эту конкретную ошибку. Чтобы показать вам, как справляться с подобными проблемами в будущем, вот мой процесс для устранения этой проблемы.

$ gem fetch ovirt-engine-sdk
$ gem unpack ovirt-engine-sdk-4.3.0.gem
$ cat ovirt-engine-sdk-4.3.0/ext/ovirtsdk4c/extconf.rb

Соответствующая часть здесь

xml2_config = find_executable('xml2-config')
if xml2_config
  # other stuff
elsif !pkg_config('libxml2')
  raise 'The "libxml2" package isn\'t available.'
end

Мы видим, что он проверяет исполняемый файл с именем xml2-config. Согласно документации для find_executable , он проверяет ваш путь для этого.

Итак, это означает, что нам нужно две вещи, чтобы исправить эту ошибку:

  1. Исполняемый файл xml2-config
  2. Нам нужно добавить это к нашему пути. Похоже, это тот шаг, который вам не хватает.

Вы можете скачать с здесь - Затем добавьте всю папку bin в свой путь.

9
задан Fadeproof 30 October 2008 в 14:50
поделиться

4 ответа

Короткая, легкая версия:

Каждая ссылка в рамках одного процесса к данному блоку должна сослаться на ту же версию.

Если Вы не делаете, Вы могли бы войти в глубокие проблемы, потому что одна часть приложения не может говорить с другим из-за несоответствия версии.

Даже с "действительно частным" материалом как log4net Вы могли бы пропустить возможности для общего пространства конфигурации, как использование общего корневого регистратора для всех частей приложения. Конечно, заключительный вызов в этом случае - как всегда - с ответственным разработчиком.

См. также этот другой вопрос о сторонних блоках и ILMerge.

5
ответ дан 4 December 2019 в 21:13
поделиться

Мы не объединяем библиотеки вообще. Я не вижу большого преимущества в объединяющихся библиотеках вместе, что Вы не можете добраться, но просто создание их в одном блоке во-первых.

Я вижу преимущества в объединяющихся библиотеках с EXE. Это могло быть реально удобный. Проблема с объединяющимися библиотеками вместе состоит в том, что у них могут быть различные версии зависимости в Вашем EXE, и это может сделать для неудобных супругов.

Я не думаю, объединяясь dlls, вместе мог считаться лучшей практикой кроме тех случаев, когда Вы объединяете их в EXE для представления единственного файла вместо нескольких файлов.

1
ответ дан 4 December 2019 в 21:13
поделиться

Я предполагаю, что могло бы быть некоторое преимущество относительно хранения набора локализованных блоков в одном (который, я даже не уверен, что можно сделать),

Я не объединил бы библиотеки от других поставщиков - потому что у них часто есть свое собственное лицензирование, и обновление их потребовало бы, чтобы Вы перераспределили новую версию своего кода.

Слияние Ваших собственных библиотек может быть выгодным, если у Вас есть многие библиотеки, чтобы сохранить каталог аккуратным, или удостовериться, что некоторый код ВСЕГДА будет с основным блоком выполнения.

Я думаю, что ILMerge добивается большего успеха с библиотеками, объединяемыми в EXE, так, чтобы у Вас был один файл вместо многих.

0
ответ дан 4 December 2019 в 21:13
поделиться

Самая большая причина, по которой мы используем ILMerge, - это сделать наш шаг обфускации гораздо более трудным для обратного действия. Объединив их вместе с помощью флага /internalize, обфускатор может переименовать публичные классы и методы, которые мы объединили в родительскую сборку.

Из документации по слиянию IL: "[Internalize] контролирует, изменяется ли видимость типов в сборках, отличных от основной сборки. Если это значение истинно, то все неисключаемые типы, видимые вне своей сборки, изменяют свою видимость так, что они не видны вне объединенной сборки"

Если сборки хранятся отдельно, то обфускатор не будет их переименовывать.

BTW Eazfuscator - потрясающий и бесплатный: http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx

4
ответ дан 4 December 2019 в 21:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: