zequion Ответов: 2

Против компиляции, отладки, но не релиз


Мне нравится компилировать только в отладке. Прямо сейчас я скомпилировал в Debug но не в Release и при нажатии F11 на определенной строке я получаю это сообщение:

Файл исходного кода отличается с момента создания модуля. Вы хотите, чтобы отладчик использовал его в любом случае?

Что я уже пробовал:

на всех сайтах интернета.
in all the sites of internet.

2 Ответов

Рейтинг:
2

CHill60

Сообщение совершенно ясно - ваша отладочная информация не соответствует вашему коду.
Очистите свое решение и сделайте полную перестройку, и проблема должна исчезнуть


Рейтинг:
2

OriginalGriff

F11 - это "шаг в" в отладчике Visual studio, поэтому, если вы получаете разные результаты с версией выпуска и отладки, то есть вероятность, что у вас есть разные двоичные файлы для сборки, в которую вы входите в папке bin/debug и bin/release (или, по крайней мере, разные даты модификации / создания)
Проверьте их все вручную и посмотрите, что вы можете узнать.


[no name]

Проблема в том, что я не хочу все время компилировать в Debug и Release. Я просто хочу скомпилировать в Debug, но при нажатии клавиши F11, когда строка изменяет файл .cs, появляется эта ошибка.

F-ES Sitecore

Вам не нужно компилировать в релизе, просто отлаживайте, и если вы измените код, то вам придется остановить отладку и повторно скомпилировать

[no name]

У меня есть файл .cs в dll под названием common.dll
В сообщении говорится, что dll находится в \bin\debug\common.dll изменилась с тех пор, как был сгенерирован код (компилируется только в debug)

OriginalGriff

Да - проверьте временные метки файлов.
Если они находятся позже, чем EXE (или DLL, на которую вы нацелены), то система хочет знать, почему...

[no name]

Я это уже проверил:
Если я компилирую dll в debug, то время dll в \ bin \ debug хорошо обновляется. Если я компилирую релиз, то время dll хорошо обновляется в \ bin \ release

Если я изменяю и компилирую в debug, но не в Release, я получаю указанное сообщение об ошибке. Но теперь я увидел, что если я компилирую в Release, но не в debug, я могу выполнить и остановить выполнение, как если бы это была Debug, и продолжить с F11, и ошибка не появляется.

Похоже, что-то было изменено внутренне, что заставляет его распознавать релиз как отладку и наоборот.
Есть решение?

OriginalGriff

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