Assembly.Load () или нет? - PullRequest
       1

Assembly.Load () или нет?

0 голосов
/ 23 февраля 2012

у нас есть очень старая программа для Windows, разработанная на c #, и с каждой новой публикацией клиенты должны переустанавливать новую версию программы. Интересно, если это возможно.

  1. Я буду хранить все классы в текстовых файлах
  2. Когда программа начинает работать, мой диспетчерский класс будет искать связанный текстовый файл, и он создаст форму / класс с Assembly.Load на лету.
  3. Давайте предположим, что если я изменю что-то в форме X, я только пересмотрю текстовый файл, связанный с формой X, и перезапишу его.

Возможно ли это?

Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

Почему текстовые файлы, вы имеете в виду в виде исходного кода? Assembly.Load () не является компилятором.

Это не Java. Вы не компилируете классы в файлы * .class (двоичные файлы). Совокупность классов C # компилируется в dll (двоичный файл). Assembly.Load () загружает только .NET dll.

Поэтому невозможно использовать Assembly.Load () напрямую с текстовыми файлами.

0 голосов
/ 23 февраля 2012

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

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

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

...