Развертывание проекта приводит к появлению ошибок типа x в обоих случаях - PullRequest
4 голосов
/ 09 декабря 2008

У меня есть проект WebApplication, проект бизнес-логики и проект WebDeployment для веб-приложения.

Когда я создаю решение, корзина «Release» развертывания содержит 1 dll для каждого из проектов, поэтому я получаю один для MyWeb.dll, MyWebBusiness.dll и MyWebDeploy.dll.

Когда я пытаюсь запустить сайт, он видит один и тот же тип как в MyWeb.dll, так и в MyWebDeploy.dll и дросселирует.

Сообщение об ошибке: CS0433: тип «AV» существует в обоих файлах: c: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ 53d45622 \ 6c032bd2 \ assembly \ dl3 \ 33f3c6b2 \ abc9430a_285ac901 \ MyWeb.DLL ' и 'c: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Временные файлы ASP.NET \ root \ 53d45622 \ 6c032bd2 \ assembly \ dl3 \ 631e5302 \ 0231160d_285ac901 \ MyWebDeploy.DLL'

Ответы [ 4 ]

10 голосов
/ 09 декабря 2008

Некоторые причины, по которым я могу придумать:

  • В вашем проекте есть каталог App_Code
  • У вас есть директива страницы CodeFile в некоторой разметке страницы вместо CodeBehind
0 голосов
/ 06 января 2013

Добавить пакет = "false" в файл web.config

Дайте вашим файлам имена исправлений в основном для мастер-страниц

<compilation ... batch="false"/>

  ...
0 голосов
/ 17 февраля 2012

Я конвертировал свой проект с веб-сайта в веб-приложение и имел CodeFile на всех страницах вместо CodeBehind, хотя я использовал опцию VS "преобразовать в WebApp". Замена Codefile на CodeBehind вручную решила мою проблему. Добавил это так, чтобы это могло помочь любому другому преобразованию в веб-приложение.

0 голосов
/ 09 февраля 2010

На этом форуме есть большое сообщение: http://forums.asp.net/t/980517.aspx

Кажется, что все, что нужно, это правильный фрагмент кода в проекте веб-приложения, и VS говорит: «О, это проект веб-сайта, так что я лучше его скомпилирую», а затем падает, когда обнаруживает, что он уже была также скомпилирована как одна DLL.

Причины, перечисленные Дарином выше, являются основными виновниками.

Обратите внимание, что подобную ошибку можно получить, если случайно иметь две ссылки на одну и ту же сборку, двойные ссылки в разделе сборок web.config или случайно сбросить дубликат копии кодового файла в папку в проекте, но обычно это будет довольно очевидно, если в вашем файле web.config включена отладка, а в сообщении об ошибке должна быть указана сборка, отличная от сборки Web App {WebAppName} .dll и автоматически скомпилированной сборки App_Web_ {number} .dll * 1008. *

Есть довольно много людей, которые говорят (в упомянутом потоке), что обработчики событий вызывали проблемы, но я думаю, что просто в коде есть что-то странное, что интерпретируется как требование автоматической компиляции. Я в одной лодке, я вырезал и вставил целую кучу примеров кода в свое веб-приложение и проверил все вышеперечисленное. Однако на многих страницах есть код, за которым уже написан код «Создан веб-дизайнер», поэтому, когда я щелкаю правой кнопкой мыши приложение в обозревателе решений и выбираю «Преобразовать в веб-приложение», ничего не происходит. Старый код остается там, а двойная компиляция продолжается.

Так что я бы сказал в дополнение к этим постам: Если код был вырезан и вставлен и есть что-то, что не нравится конвертеру, он не преобразует его, и двойная компиляция продолжится. Единственное решение состоит в том, чтобы добавить испорченные страницы в качестве новых элементов, скопировать разметку и код (побитно при необходимости), а затем удалить старые версии.

В моем случае я просто пошел на веб-сайт для проекта, потому что меня это не беспокоило, и это был всего лишь демонстрационный проект.

...