Разница в DLL при компиляции на Build Server вместо Dev Machine - PullRequest
0 голосов
/ 19 марта 2010

У меня есть приложение, которое загружает пользовательские элементы управления в веб-приложение .NET. Когда я компилирую и тестирую приложение локально на моем компьютере разработчика , оно работает на моем компьютере. Проект успешно собирается с использованием MSBuild на нашем сервере сборки. Однако, когда я развертываю dll, сгенерированную MSBuild, на сервере сборки, я получаю следующую ошибку, когда приложение загружает элемент управления:

BC30456: CreateResourceBasedLiteralControl не является членом ASP.usercontrols_somecontrol_ascx.

Я посмотрел, сравнил dll, сгенерированный на моей машине, и сравнил его (посмотрел на размер файла) с тем, который был создан сервером сборки, и заметил разница в размере файла. Это сбивает с толку, учитывая, что код, создаваемый локально и на сервере сборки, является ИДЕНТИЧНЫМ. Я вручную сравнил каждый файл вручную. Итак, мой вопрос: В чем причина этой ошибки? Что будет отличаться между компиляцией кода MSBuild и тем, что происходит в Visual Studio при компиляции кода?

Ответы [ 2 ]

4 голосов
/ 19 марта 2010

У вас проблема с версиями.Некоторые сборки на вашей целевой машине отличаются от вашей на компьютере разработчика.Боюсь, вам придется покопаться, чтобы выследить его, так как это сообщение об ошибке совершенно бесполезно.На самом деле он направляет вас в неправильном направлении, поскольку проблема не в вашей сборке.Это, вероятно, вызвано чем-то в вашем проекте.У вас есть какой-нибудь сторонний инструмент или SDK на вашем компьютере разработчика, который еще не обновлялся на сервере?

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

0 голосов
/ 03 июня 2012

Если вы скомпилируете это как dll.
Попробуйте удалить App_Code.dll в папке bin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...