Неоднозначность возвращаемого типа функции в выпуске и отладочной версии

У меня два проекта на одном решении; скажем, Project1 и Project2. Project1 включает только абстрактные классы и их реализации, и он добавлен как ссылка на Project2. Одна из функций, Connect () в Class1 в Project1, определяется следующим образом;

 public bool Connect() { ...TCP connection code }

В Project2 функция Connect объекта Object1 вызывается как;

 if (carlValentin.Connect() != false) {...}

Visual Studio 2010 используется в качестве IDE.
Здесь возникает странность. Когда я выбираю Debug в качестве конфигурации, все идет нормально, компиляция завершена и приложение запускается. Однако, когда я переключаю конфигурацию на Release, я получаю следующую ошибку типа возвращаемого значения:
Operator != cannot be applied to the operands of type void and bool.

Project1 не включает никаких других перегруженных методов для функции Connect. Как уже упоминалось, Project2 зависит от Project1. Я подозреваю, что это проблема с внесенными мной изменениями, поскольку предыдущее определение Connect имело недействительный тип возвращаемого значения. Но я почти уверен, что порядок сборки проекта настроен так, что сначала компилируется Project1, а затем создается Project2.


person MCG    schedule 21.08.2013    source источник
comment
Восстановите все свои проекты.   -  person I4V    schedule 21.08.2013
comment
Вы пробовали выполнить полную перестройку решения сейчас, когда вы находитесь в режиме выпуска?   -  person Adrian    schedule 21.08.2013
comment
Только что попробовал, все то же самое.   -  person MCG    schedule 21.08.2013
comment
Я полагаю, здесь нет ни #if DEBUG, ни [Conditional("DEBUG")]? (или действительно то же самое с RELEASE, а не DEBUG)   -  person Marc Gravell    schedule 21.08.2013


Ответы (1)


Я скажу, что список того, что скомпилировано в различных режимах отладки / выпуска, был нарушен. Перейдите в Build-> Configuration Manager, выберите все различные комбинации режима отладки / выпуска и платформ и убедитесь, что все различные Build флажки отмечены.

person xanatos    schedule 21.08.2013
comment
Да, это сработало. Я установил флажок «Сборка» для конфигурации выпуска Project1. Однако в режиме отладки он не утолщен, но все идет нормально. В любом случае, он решен, но мне все еще любопытно, почему мне не нужно было ничего менять в режиме отладки, а в режиме выпуска. - person MCG; 21.08.2013
comment
@MCG Потому что в определенный момент отладка была принудительно построена, а затем оставалась в папке отладки. Если вы удалите папку отладки, вы увидите ту же проблему. - person xanatos; 21.08.2013