2015-05-25 6 views
2

Я пытаюсь преобразовать свое приложение из .NET 2.0 в 4.5.1, но у меня есть версия с исполняемой программой для моего приложения.Время выполнения Ошибка в преобразовании приложения из .NET 2.0 в 4.5.1

Could not load file or assembly '...dll' or one of its dependencies.This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

Как я могу избавиться от этого? Я что-то забыл добавить или изменить на свой Web.config?

Процесс публикации приложения осуществляется через локальные, и опубликованные файлы будут скопированы на сервере приложений в виртуальной машине.

+0

Ваш проект зависит от других .Net-проектов? если да, то plz make ur все эти проекты также продвигаются, или другие зависимости (сторонние библиотеки или элементы управления) должны иметь целевую структуру, аналогичную исходному проекту. – ijaz

+0

Для этого требуется куча копания - какие сборки? Вы можете проверить 'web.config' для записей, ссылающихся на старые сборки (фреймворк или даже сторонний участник). – EdSF

+0

Вы обновили версию среды .NET для пула приложений? – oleksa

ответ

1

Я просто решить эту проблему путем публикации приложения локально в VS2013, получить опубликованную версию и добавить & модифицировали web.config экземпляра сервера приложений с ФФ:

<configSections> 
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <section name="[myDllname].Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/> 
    </sectionGroup> 
    </configSections> 

    <system.web> 
    <globalization uiCulture="auto" culture="auto"/> 
    <customErrors mode="Off"/> 
    <pages validateRequest="false" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"> 
     <controls> 
     <add tagPrefix="csla" namespace="Csla.Web" assembly="Csla, Version=3.0.3.0, Culture=neutral, PublicKeyToken=93be5fdc093e4c30"/> 
     </controls> 
    </pages> 
    <!-- 
      Set compilation debug="true" to insert debugging 
      symbols into the compiled page. Because this 
      affects performance, set this value to true only 
      during development. 
    --> 
    <compilation debug="true" targetFramework="4.5.1"> 
     <assemblies> 
     <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     </assemblies> 
    </compilation> 
    <identity impersonate="true"/> 
    <authentication mode="Windows"/> 
    </system.web> 

Просто убедитесь, что целевая структура находится в совместимом режиме. В моем случае я использую старую версию CSLA.