2012-02-23 2 views
0

У нас очень старая программа для Windows, разработанная с помощью C#, и с каждым новым изданием клиентам необходимо переустановить новую версию программы. Интересно, если это возможно.Assembly.Load() или нет?

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

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

+1

Deliver исправляет ошибку, не увеличивающаяся кнопка [AssemblyVersion] так просто копия файла достаточно. –

ответ

2

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

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

Невозможно использовать Assembly.Load() непосредственно с текстовыми файлами.

+0

Так есть ли другой способ сделать это? –

0

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

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

Если вы действительно хотите бесшовное обновление, рекомендуется использовать развертывание ClickOnce, или какой-либо процесс автоматического обновления, как (ныне устаревшие) Updater Application Block.