Может ли проект .Net MSI / setup добавить сборку как в версию 2, так и в версию 4 .NET Framework GAC? - PullRequest
1 голос
/ 16 августа 2011

Можно ли создать .Net MSI / проект установки, который может добавить сборку «X» как в версию 2, так и в версию 4 .NET Framework GAC?

Я попытался, добавив вывод из 2 проектов в специальную папку GAC, например ::100100

«XTargetingV3.5.csproj» «XTargetingV4» .csproj»

Однако я получаю следующее объяснение:

ВНИМАНИЕ: два или более объекта имеют одинаковое целевое расположение ('[gac] X \ 1.0.0.0_2752785e627d5953 \ X.dll') ПРЕДУПРЕЖДЕНИЕ. Два или более объекта имеют одинаковое целевое расположение ('[gac] X \ 1.0.0.0_2752785e627d5953 \ X.dll')

Это также происходит, если я пытаюсь добавить модуль слияния, содержащий «X», нацеленный на одну из платформ.

Я бы хотел, чтобы мое существующее клиентское приложение, которое было разработано для версии 3.5 платформы .Net (следовательно, ищет в C: \ Windows \ Assembly для «X»), продолжает использовать этот GAC, тогда как новые клиенты встроенный в целевой v4 .Net Framework также найдет «X», посмотрев в новый GAC (C: \ Windows \ Microsoft.NET \ Assembly). Поэтому, когда «X» обновляется, установщик MSI установит «X» на оба GAC, так что клиенты v3.5 и v4 получат обновление.

Я понимаю, что могу попросить старый клиент v3.5 вместо этого использовать v4 среды выполнения (см. Перенаправление версий сборки на другой CLR / GAC ), используя:

<configuration> 
  <startup> 
    <supportedRuntime version="v4.0" /> 
  </startup> 
</configuration>

но я стараюсь не создавать app.configs для существующих клиентов.

1 Ответ

0 голосов
/ 16 августа 2011

Framework 4 GAC имеет подпапку внутри каталога GAC. Используйте gacutil, чтобы увидеть путь.

...