Мы пытаемся найти хорошее решение для обмена общими библиотеками, файлами, исполняемыми файлами. У нас есть сценарий использования, подобный приведенному ниже.
Service1 и Service2 - это две службы WCF, разработанные и поддерживаемые двумя отдельными группами, и они следуют своим собственным графикам выпуска. Common.dll предоставляется отдельной командой, и они выпускаются по собственному расписанию.
Когда Common.dll выпускается рядом с каждой сервисной командой, тестирующей его, общая команда несет дополнительную ответственность за обращение к каждой сервисной команде и их, проверяя, чтобы эти изменения были сброшены в несколько папок BIN, и будет сценарий, в котором мы может пропустить одну из папок BIN.
Service1
Folder: C:\Services\Service1\Bin
Common.dll
Common.dll.config
Service1.dll
Service2
Folder: C:\Services\Service2\Bin
Common.dll
Common.dll.config
Service2.dll
Вместо того, чтобы Common.dll и Common.dll.config находились в двух отдельных папках Bin, как лучше всего их использовать для Service1 и Service2.
Это не так, как показано ниже. Я не хочу иметь Common.dll и Common.dll.config в C: \ Services \ Service1 \ Bin, а также C: \ Services \ Service2 \ Bin
Как сохранить общий код общим для проектов в c#?
Работа с библиотеками Common / Utility
Только что началось исследование возможно ли это?
ОБНОВЛЕНИЕ
Я исследовал много способов, но если в папке BIN моего сервиса нет dll, я не могу запустить мой сервис. Так что, кажется, мне нужно, чтобы все мои библиотеки в моей папке BIN. Поэтому я написал метод, который запускается в событии OnStart моей службы windows, в которой размещается моя служба WCF для копирования файлов из общего расположения в папку BIN.
Вместо слепого копирования библиотеки DLL, я пытаюсь сравните DLL из общей папки с моей DLL-папкой BIN и, если не совпадает, скопируйте из общей папки и замените в папке BIN. Любые предложения, как сравнить две DLL в C# код?
protected override void OnStart(string[] args)
{
try
{
LoadAssemblies();
restServiceHost = new ServiceHost(typeof(restService.NonVaseImage));
restServiceHost.Open();
}
catch (Exception ex)
{
\\handle exception
}
}