Скажем, у меня есть два проекта: P4 и P3, предназначенные для .net 4.0 и 3.5 соответственно.Может ли мое приложение .Net ссылаться на две разные версии библиотеки .net framework?
В каждом проекте также содержится ссылка на System.Data. В случае P4, он будет System.Data v4.0.0.0 В случае P3, это будет System.Data v2.0.0.0
P4 Проект также ссылается на P3.
Если P4 загружен и выполнен, он использует CLS. NET 4.0. Во время выполнения ссылки на System.Data, похоже, разрешают v4.0 внутри P4 и P3. Я могу переопределить это, используя переадресацию assemblyBinding, но тогда и P4, и P3 разрешат v2.0.
Есть ли способ настроить мое приложение так, чтобы P4 использовал v4.0, а P3 - v2.0?
Я пробовал это, но не повезло. P3 все еще работает v4.0. Вы знаете, будет ли этот параметр иметь какой-либо видимый эффект в сборке, сгенерированной для P3? Например. В манифесте говорится: «.ver 2: 0: 0: 0» ли значение «Специфическая версия» равно true или нет. – Rob
Да, это то, что я сделал после совета Себа. Мне также необходимо указать useLegacyV2RuntimeActivationPolicy = "true" как атрибут в теге автозагрузки. В противном случае он разбился с Unhandled Exception: System.BadImageFormatException – Rob
Awesome. Его ссылка была тем, что напомнило мне о конфиге, так что определенно согласиться с его ответом. – Randolpho