Так что я не из мира Java, но я понимаю, что у этих ребят есть концепция частичной перекомпиляции, при которой, когда решение перестраивается, то перекомпилируются только измененные файлы.
С моей точки зрения, здесь есть две интересные вещи, во-первых, мне интересно, возможно ли подобное в .NET, а именно при запуске тестов.А во-вторых, я хочу знать, что представляет собой механизм для достижения этого.
Что касается первого пункта, я имею в виду, что во многих проектах .NET, которые я видел, может быть несколько проектов, на которые ссылается одна тестовая сборка.По сути, это означает, что каждый раз, когда я хочу выполнить тест, весь мир нуждается в перекомпиляции.Теперь очевидно, что будет лучше разделить тестовые проекты на производственные проекты, но по моему опыту этого не происходит.То, что я хотел бы видеть, это то, что когда мне нужно запустить тест, компилируется только код, необходимый для этого теста.
Во второй части я действительно заинтересован в механизме, который используется для достижения частичногокомпиляция в мире Java.Являются ли Java IDE парнями, которые отслеживают изменения в файлах и перекомпилируют только то, что изменилось, или это что-то еще?На самом деле, у меня есть несколько других вопросов, но они могут показаться довольно глупыми, поэтому, возможно, кто-то мог бы просто дать мне хороший справочник, который я могу прочитать о том, как это обрабатывается в Java.
Приветствия, Крис.
РЕДАКТИРОВАТЬ:
Хорошо, я явно не прояснил себя здесь, я не хочу знать, как работает MSBuild, и у меня нет конкретной проблемы с порядком, в котором мои проектыbuild или что строится (Игра с настройками проекта не достаточно детальна для меня).
Что я хотел знать, так это механизм, позволяющий Java-проектам выполнять частичную перекомпиляцию на уровне файлов.
Из моего понимания теперь мне ясно, что Java компилирует каждый файл .java в файл .class (в некоторой промежуточной форме), а затем все файлы классов архивируются вместе как файл Jar.Кроме того, большинство IDE поддерживают эту компиляцию на уровне файлов каждый раз, когда файл сохраняется, а некоторые даже поддерживают выполнение модульных тестов при каждом сохранении (большое время IMO)
Теперь, что касается .NET, я считаю, чтоскомпилированные dll не разделены на этом уровне и вместо этого содержат ВСЕ IL для ВСЕХ скомпилированных классов в проекте в виде одного файла (дайте мне знать, если это не так).
Так что вопрос здесь заключался в том, какие вариантыесть ли для нас, чтобы получить нечто подобное в мире .NET, а именно для выполнения модульных тестов.Единственное, о чем я могу думать, - это чтобы VS отслеживал зависимости на уровне класса и имел небольшие временные сборки, содержащие все зависимости, необходимые для выполнения теста.Любые другие предложения приветствуются.