У меня есть проект веб-приложения ASP.NET который ссылки другой проект под названием ModusCore (или Способ. Ядро). У нас было множество средств управления, которые используют ModusCore вплоть до сих пор без проблемы, но существует тот, который я создал в последнее время, это доставляло неприятности. Вот код:
public class PortalLinkNew : WebControl
{
public string Text { get; set; }
public bool AllowPush { get; set; }
public PortalLinkNew()
{
AllowPush = true;
}
public IChannelRequest ChannelRequest { get; set; }
protected override HtmlTextWriterTag TagKey
{
get { return HtmlTextWriterTag.A; }
}
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
try
{
base.AddAttributesToRender(writer);
if (DesignMode || Page == null || !(Page is IPortalPage))
{
return;
}
string href = "/";
if (ChannelRequest != null)
{
var portalPage = (IPortalPage)Page;
href = portalPage.Module.PortalRouter.GetLinkUrl(portalPage, ChannelRequest, AllowPush);
}
writer.AddAttribute(HtmlTextWriterAttribute.Href, href);
}
catch (Exception)
{
}
}
public override void RenderEndTag(HtmlTextWriter writer)
{
writer.Write(Text);
base.RenderEndTag(writer);
}
}
В вышеупомянутом коде, IPortalPage
и IChannelRequest
интерфейсы, определенные в Способе. Ядро.
Мое намерение состоит в том, чтобы использовать это управление в моем коде следующим образом:
<tnl:PortalLinkNew ID="CancelButton" runat="server" Text="Cancel" OnInit="CancelButton_Init" />
Это на самом деле компилирует и работает без проблемы, но когда я редактирую страницу (исходное представление) в Visual Studio 2008, я получаю соблюдающее предупреждение:
Поколение файла разработчика перестало работать: не Мог загрузить файл или блок 'Способ. Ядро, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' или одна из его зависимостей. Система не может найти файл указанным.
Как это говорит, это не повторно создает файл разработчика, означая любую попытку относиться к CancelButton
управление в коде - позади результатов в ошибке компилятора. Следующий совет, который я нашел онлайн, я попытался удалить соответствующий .ascx.designer.cs файл, и использовать "Преобразовывают в веб-приложение" на той странице, но это говорит мне, что не может восстановить файл разработчика по той же упомянутой выше причине.
Я попробовал все, о чем я могу думать: очистка решения, перезапуск Visual Studio, перезагрузка моего компьютера, удаление каталога кода и получение по запросу его только что из репозитория, удаления и передобавления проекта и dll ссылок, и т.д. Та же проблема происходит на нескольких компьютерах, которые я использую.
Как я могу заставить разработчика VS прекращать перестать работать?
У меня очень похожая проблема (которую я пока не мог решить). Приложение, с которым у меня возникла проблема, было преобразовано из «проекта веб-сайта», и я не могу избавиться от ощущения, что это как-то связано с этим. И я использую VS 2005.
Теперь я могу добавить, что
а) «иногда» (я еще не мог понять, когда именно) у меня работает трюк «Преобразовать в веб-приложение» (но не всегда)
б) «иногда» (то же, что и выше) помогает переключиться на представление дизайнера, что-то изменить и сохранить -> * .designer.cs создается повторно
Я обычно пробую несколько вещей в порядке без исправлений после Я добавил элемент управления на свою страницу, пока "что-то" не сработает.
В Интернете много шума по этому поводу, но я не смог найти "настоящего исправления" (пока). Одна вещь, которую я прочитал помимо уже упомянутого, - это то, что это может иметь какое-то отношение к (не совпадающим / не существующим) пространствам имен.
Когда я проверил свое приложение, в * .cs-файлах действительно не было деклараций пространства имен
. Поэтому я добавил их (в * .cs и *.aspx) и какое-то время думал, что это помогло. Но, к сожалению, теперь я знаю, что это не так ...
Я боролся с этой проблемой весь день, и вы бы не Не верю, в чем был виноват. Я отключил ReSharper 5.0, и внезапно ошибки исчезли. Невероятный.