Member 10535790 Ответов: 2

Служба c# windows и DLL


Привет,

Я разработал службу Windows, которая будет вызывать бизнес-логику
который я определил в одной библиотеке DLL (Dynamic-link library).

Нужно ли добавлять DLL в качестве ссылки или загружать DLL только во время выполнения с помощью сборки.

Пожалуйста, предложите, какой подход будет иметь лучшую производительность

Что я уже пробовал:

Hi,

I have developed Windows Service which will Call a Business Logic 
which i defined in single DLL(Dynamic-link library).

Do i need add DLL as a refernce OR load DLL only in Run time using Assembly.

Please Suggest which approach will have better perfomance

[no name]

"Нужно ли мне добавлять DLL в качестве ссылки или загружать DLL только во время выполнения с помощью сборки", да

"какой подход будет иметь лучшую производительность", бенчмарк вашего кода с использованием обоих методов. Затем выберите метод, который дает вам лучшую производительность.

Member 10535790

причина, по которой я поднял эту проблему, заключается в том, что я собираюсь запустить несколько Windows exe, все они будут вызывать определенный интервал.Если я ссылаюсь, мне нужно скопировать файл в каждую папку exe.Поэтому я думал, чтобы держать dll файлы в общую папку и запустить по инструкция по во время выполнения.Пожалуйста, предложите

2 Ответов

Рейтинг:
2

Dave Kreskowiak

В обоих случаях вы используете один и тот же код. Ни один из них не даст вам лучшей производительности по сравнению с другим.


Member 10535790

причина, по которой я поднял эту проблему, заключается в том, что я собираюсь запустить несколько Windows exe, все они будут вызывать определенный интервал.Если я ссылаюсь, мне нужно скопировать файл в каждую папку exe.Поэтому я думал, чтобы держать dll файлы в общую папку и запустить по инструкция по во время выполнения.Пожалуйста, предложите

Dave Kreskowiak

Если вы установите ссылку на .DLL, когда вы строите проект, является его копией .DLL будет в конечном итоге в папке bin. Да, вам понадобится его копия для каждого файла .EXE.

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

Другой вариант-установить ссылку на .DLL в ваших проектах. EXE, но при развертывании .EXE не включает в себя .DLL в процессе установки. Есть отдельная установка для вашего .DLL, которая также регистрирует его в GAC.

Google для "C# What is global assembly cache" и "c# how to register DLL in GAC".

Рейтинг:
1

F-ES Sitecore

Добавьте его в качестве ссылки.


Member 10535790

причина, по которой я поднял эту проблему, заключается в том, что я собираюсь запустить несколько Windows exe, все они будут вызывать определенный интервал.Если я ссылаюсь, мне нужно скопировать файл в каждую папку exe.Поэтому я думал, чтобы держать dll файлы в общую папку и запустить по инструкция по во время выполнения.Пожалуйста, предложите

F-ES Sitecore

Поместите сборку в GAC, и вы сможете использовать ее из любого приложения, не копируя сборку в папку bin.