У меня есть VS2010 и VS2012, установленные на моем компьютере, и у меня была .NET Framework 4.0, которую я затем обновил до .NET Framework 4.5. Тем не менее, я все еще разрабатываю приложения, которые должны работать в .NET Framework 4.0. В проекте говорится, что он нацелен на .NET Framework 4 (профиль клиента), сборки также указывают на папку .NET Framework 4.0 в разделе "Связанные сборки". Проблема возникает, когда я переношу это приложение на машину, у которой только 4.0 она не запускается, и приходят с ошибками, когда непосредственная проблема является исключением из WindowState={Binding WindowState}
, которое вы не можете сделать в 4.0, но вы можете в 4.5. Мне нужно это, чтобы исключить исключение в моем окне разработки, почему? Мое предположение заключается в том, что, несмотря на все мои усилия, он использует 4.5 dll, если они существуют. Как я могу заставить его действительно использовать 4.0 без удаления 4.5?
Обновление
Чтобы воспроизвести эту установку .NET Framework 4.5 и создать проект WPF, ориентированный на .NET Framework 4.0. Привяжите WindowState к свойству в VM или кодовом коде, чтобы это свойство имело общедоступный get и private set..NET Framework 4.5 отлично справляется с этим, даже когда Mode = TwoWay должен игнорировать установленный .NET Framework 4 и не делает исключение: "Связывание TwoWay или OneWayToSource не может работать в качестве свойства" только для чтения "типа..". На ящике с .NET Framework 4.5 работает как шарм, попробуйте его на машине с только .NET Framework 4.0, и он взорвется... Итак, какие-либо идеи о том, как реально настроить 4.0 при установке 4.5?
Отчет об ошибке для MS здесь: https://connect.microsoft.com/VisualStudio/feedback/details/774694/targeting-net-framework-4-0-when-4-5-doesnt-seem-to-work