Прежде всего, я не знаю большую часть развертывания. Я надеюсь, что мой вопрос имеет смысл.
Я должен установить/развернуть приложение 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, но любой не слишком дорогое решение сделает.
Что было бы Вы совет?
Просто добавьте свою DLL в проект в Visual Studio.
Теперь ваш файл будет автоматически скопирован в папку отладки или выпуска.
Для развертывания вы можете добавить в решение проект установки. Когда вы добавляете результат своего первого проекта в проект установки, DLL автоматически добавляется в установку.
Но инсталляционный проект - это совершенно новая область. Так что начните работать с этим и задавайте новый вопрос, если вы застряли в нем.
Если ClickOnce имеет возможность переносить этот файл DLL с собой и копировать его в папку приложения, я бы использовал его. Было бы даже лучше, если бы он мог проверить, присутствует ли файл DLL в системе (папка system32), и использовать его тогда, чтобы у вас не было нескольких версий двоичного файла на целевом компьютере.
Вы можете просто включить dll в свой проект и развернуть все это с помощью ClickOnce. Добавьте его в решение, установите действие сборки на 'content'. Установите для параметра 'copy to output directory' значение 'copy always'. При публикации вы должны увидеть файл в папке публикации. Вы также можете проверить диалог Application Files (на вкладке publish в свойствах проекта), чтобы убедиться, что он будет включен.