Я создал приложение Windows Service в .NET (C# C), которое в настоящее время выполняется на моем локальном компьютере (Win & 64 бит), и у него есть собственный файл журнала событий, а также пользовательский файл журнала для пост-отладки, который выходит в c: \ ProgramData \ MyAppName \Перемещение с локального ПК на сервер
У меня есть две основные библиотеки DLL в одном проекте, который имеет весь основной функциональный код.
Это связано с Проектом VS VS, который также содержит проект Windows Form, который находится в настольном лотке и предоставляет мне статус службы, поскольку он использует сторонний API, независимо от того, запущен и запущен API, любая текущая ошибка, плюс у нее есть кнопки, позволяющие мне остановить/запустить службу, если мне нужно.
Однако мне нужно переместить все это на сервер Windows 2012 Server, и есть несколько проблем, которые мне необходимо решить.
1) На сервере нет Visual Studio, поэтому для меня нет каталогов для размещения моих проектов, их перестроения и запуска их, а другие приложения могут подключаться к библиотекам DLL, которые я должен использовать с «Добавить ссылку» и т. Д.
Должен ли я загрузить VS Web Edition или что-то на сервер, чтобы упростить управление/отладку/код, если мне нужно?
Или есть другой способ, например, просто скопировать DLL и regsrvr их для установки, затем скопировать службу/приложение на сервер, и у него автоматически будут ссылки на него, а если нет, то какая процедура.
Основной код в DLL, который я построил, который также поставляется с DLS сторонних разработчиков JSON.
Они оба воссоздаются, когда я перестраиваю основной проект, тогда мне нужно удалить и повторно добавить их как в проекты службы, так и в проекты win-форм, прежде чем перестраивать их для правильной работы.
Как обойти это без VS на сервере - Могу ли я отлаживать/создавать код на своем ПК и просто копировать файлы? - будут ли ссылки на DLLS из службы/приложения работать, несмотря на разные пути? -Если нет, что мне делать? -Так где же самая лучшая папка для их хранения?
Также я заметил, что несмотря на то, что у меня есть доступ администратора/root к серверу (RD/SFTP/Win Share), я не вижу папку c: \ ProgramData на диске C: \. Здесь все записи из моего приложения, когда он работает 24/7, запускаются на моем ПК. Он создает один файл журнала в день, 2 исторические - все для пост процесс отладки и т.д.
Является ли это потому, что это Win 2012 сервер и код я использую, чтобы получить путь в моем проекте, который
this.Logpath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\" + NameOfMyApp;
работает по-другому, например Environment.SpecialFolder.CommonApplicationData - это другая папка в Win 2012, или мне нужно что-то сделать, чтобы показать папку ProgramData, чтобы я мог нормально ее просматривать?
Я помню, что недавно, когда я сделал Windows Update на своей машине Win7, что-то сработало (видимо, с Win7), и я не смог увидеть папку ProgramData (служба все еще была запущена) - пока мои профили не были заменены (он использовал профиль temp по умолчанию, поэтому все мои значки на рабочем столе совпадали с закладками и папками).
Итак, я пытаюсь переместить эти 2 проекта VS (или рабочий код, который они создают) с моей 64-разрядной машины Win7 на 64-битный сервер Win 2012.
Каковы лучшие шаги, которые необходимо предпринять, чтобы все работало и все папки, отображающие (programdata), плюс обслуживание и работа без наличия Visual Studio на сервере?
Благодарим за любую помощь заранее.
Ну, он использует переменные Enviroment, чтобы получить путь для того, где он должен создать папку (и создает, если не там - то же самое с журналом событий), - но я просто подумал о безопасности, что они остановили приложения, хранящие файлы по всей ОС и создала папку ProgramData для этой цели. Проблема в том, что там 2 проекта 1 моей DLL со всем кодом, который включает JSON DLL, а затем другой проект, который ссылается на эти 2 DLLS в приложении Service и Windows Form, как мне создать установщик для обоих проектов? – MonkeyMagix