Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Создание общедоступного компоновочного блока версии 2.0.0.0

Создание общедоступного компоновочного блока версии 2.0.0.0

Теперь обновите свой проект CarLibrary, добавив в него определение нового перечня MusicMedia, определяющего четыре возможных музыкальных устройства.

// Содержит информацию об источнике музыки.
public enum MusicMedia {
 musicCd,
 musicTape,
 musicRadio,
 musicMp3
}

Также добавьте для типа Car новый открытый метод, который позволит вызывающей стороне включить один из имеющихся проигрывателей.

public abstract class Car {
 …
 public void TurnOnRadio(bool musicOn, MusicMedia mm) {
  if (musicOn) MessageBox.Show(string.Format("Шум {0}", mm));
  else MessageBox.Show("И тишина…");
 }
 …
}

Измените конструкторы класса Car, чтобы отображалось окно MessageBox, в котором подтверждается использование CarLibrary именно версии 2.0.0.0.

public abstract class Car {
 …
 public Car() {
  MessageBox.Show("Car 2.0.0.0");
 }
 public Car(string name, short max, short curr) {
  MessageBox.Show("Car 2.0.0.0");
  petName = name; maxSpeed = max; currSpeed = curr;
 }
 …
}

Наконец, до начала новой компиляции не забудьте изменить значение версии этого компоновочного блока на 2.0.0.0 с помощью изменения значения, передаваемого атрибуту [AssemblyVersion].

// CarLibrary версии 2.0.0.0 (теперь с музыкой!).
[assembly: Assembly-Version("2.0.0.0"]

Если вы теперь заглянете в папку BinDebug проекта, то увидите, что там присутствует новая версия компоновочного блока (2.0.0.0), в то время как версия 1.0.0.0 в полной безопасности хранится в подкаталоге Версия 1. Установите этот новый компоновочный блок в папку GAC в соответствии с инструкциями, предложенными в этой главе выше. Обратите внимание на то, что теперь вы будете иметь две версии одного и того же компоновочного блока (рис. 11.25).


Рис. 11.25. Параллельное выполнение

Если теперь в программе Проводник Windows выполнить имеющуюся программу SharedCarLibClient.exe с помощью двойного щелчка на ее пиктограмме, вы не увидите окно с сообщением "Саr 2.0.0.0", поскольку соответствующий манифест специально запрашивает версию 1.0.0.0. Так как же тогда дать указание среде CLR о том, чтобы среда выполнила привязку к версии 2.0.0.0? Я рад, что вы об этом спрашиваете.

Оглавление книги


Генерация: 1.149. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз