2013-06-05 3 views
0

У меня возникли проблемы с веб-сайта проекта и entityframework 5.EF 5 и WebSite конфликт

я собираюсь поставить некоторые фона: Тип проекта является сайт, а не веб-приложение или MVC, поэтому при развертывании, Я просто копирую все файлы на сервер, и все скомпилируется, когда приходит первый визит. И это то, что я считаю причиной проблемы.

Проект нацелен на .Net 4.0, поэтому, когда я устанавливаю EntityFramework из nuget, версия файла dll равна 4.4. Запуск проекта из VisualStudio с помощью IIS Express в порядке (поскольку VisualStudio знает, что целевая структура - 4 и компилирует проект с использованием .Net framework 4 dll), но при копировании файлов на производственный сервер, где установлен .NET Framework 4.5, когда первый приезд прибывает, сайт скомпилирован против DLL .Net framework 4.5 и возникает проблема, потому что EntityFramework 4.4 содержит определения для классов (например, Column), которые также содержатся в dll dataannotations из .Net 4.5.

The type 'System.ComponentModel.DataAnnotations.Schema.ForeignKeyAttribute' exists in both 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.ComponentModel.DataAnnotations\v4.0_4.0.0.0__31bf3856ad364e35\System.ComponentModel.DataAnnotations.dll' and 'c:\Users\jyuste\AppData\Local\Temp\Temporary ASP.NET Files\portalempleado\4700d3ec\2c948b16\assembly\dl3\1c8b81c9\750c5018_1e5dce01\EntityFramework.DLL' 

Я полагаю, что обновление проекта в .NET 4.5 и обновление ссылок EntityFramework бы решить эту проблему, но я не могу сделать это прямо сейчас.

Считаете ли вы, что существует другое решение?

+0

В вашем 'web.config' содержится' <компиляция ... targetFramework = "4.0" /> '? –

+0

Да: <компиляция targetFramework = "4.0"> ...

ответ

0

Из того, что вы пишете, возможным решением могло бы стать изменение процедуры развертывания.

Вместо копирования исходных файлов C# на целевой сервер сначала публикуйте сайт локально в любом каталоге. Публикация может быть выполнена с помощью опции «Создание/публикация веб-сайта» в меню VS.

Это будет компилировать все исходные файлы и создавать развертывания готовых sturcture, содержащую только декларативный код (* .aspx, *. ASCX, *. ASMX, и т.д.) и /бен папку, содержащие * .dlls с скомпилирован C#.

Только затем скопируйте опубликованную структуру на сервер делегирования.

+0

Да, Я уже думал об этой возможности, но одним из требований клиента является возможность изменения кода на сервере. Я думаю, что мои варианты: изменить целевую структуру или понизить версию .Net на сервере. –

Смежные вопросы