Как развернуть приложение C# в то время как включая сторонние файлы DLL?

Прежде всего, я не знаю большую часть развертывания. Я надеюсь, что мой вопрос имеет смысл.

Я должен установить/развернуть приложение C# на многих рабочих столах. Этому нужен сторонний файл DLL: библиотека C++ ("lpsolve55.dll", для заинтересованных, это - свободный решатель MIP/LP, видит lpsolve.sourceforge.net/5.5/). Я использую его в своем коде следующим образом:

    [DllImport("lpsolve55.dll", SetLastError = true)]
    public static extern bool add_column(int lp, double[] column);

Для тестирования я вручную скопировал .dll файл в к project\bin\release, и это хорошо работает.

Мой вопрос: Мне будет нужен установщик для приложения, которое будет управлять этим, .dll установит также. Я рассматриваю развертывание ClickOnce, так как я использую Визуальный 2008 C# Express Edition, но любой не слишком дорогое решение сделает.

Что было бы Вы совет?

10
задан Peter Mortensen 17 January 2016 в 23:56
поделиться

3 ответа

Просто добавьте свою DLL в проект в Visual Studio.

  • Щелкните правой кнопкой мыши проект в средстве просмотра решений
  • Выберите «Добавить - существующий элемент»
  • Перейдите к DLL и нажмите «Добавить» или , маленькую стрелку рядом с кнопкой «Добавить» и «Добавить как ссылку»
  • Выберите вашу DLL в Solution Viewer
  • Щелкните правой кнопкой мыши и выберите Свойства
  • Установите Действие сборки на Содержимое
  • Установите Копировать в выходной каталог на Копировать, если новее

Теперь ваш файл будет автоматически скопирован в папку отладки или выпуска.

Для развертывания вы можете добавить в решение проект установки. Когда вы добавляете результат своего первого проекта в проект установки, DLL автоматически добавляется в установку.

Но инсталляционный проект - это совершенно новая область. Так что начните работать с этим и задавайте новый вопрос, если вы застряли в нем.

11
ответ дан 3 December 2019 в 23:11
поделиться

Если ClickOnce имеет возможность переносить этот файл DLL с собой и копировать его в папку приложения, я бы использовал его. Было бы даже лучше, если бы он мог проверить, присутствует ли файл DLL в системе (папка system32), и использовать его тогда, чтобы у вас не было нескольких версий двоичного файла на целевом компьютере.

1
ответ дан 3 December 2019 в 23:11
поделиться

Вы можете просто включить dll в свой проект и развернуть все это с помощью ClickOnce. Добавьте его в решение, установите действие сборки на 'content'. Установите для параметра 'copy to output directory' значение 'copy always'. При публикации вы должны увидеть файл в папке публикации. Вы также можете проверить диалог Application Files (на вкладке publish в свойствах проекта), чтобы убедиться, что он будет включен.

2
ответ дан 3 December 2019 в 23:11
поделиться
Другие вопросы по тегам:

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