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

We use cookies. Read the Privacy and Cookie Policy

Создание общедоступного компоновочного блока версии 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? Я рад, что вы об этом спрашиваете.