Почему исполняемый файл помещается в папку obj \ Debug или obj \ Release в Visual Basic VS2005? - PullRequest
0 голосов
/ 25 июня 2011

Я пытаюсь обновить приложение, разработанное пару месяцев назад на VB Visual Studio 2005.

« Путь вывода сборки: » для проекта указывает на папку, в которой я собрал несколько исполняемых файлов, связанных с моей деятельностью, BinDir / . Он находится рядом с папкой проекта ProjName / на моем диске.

Вопреки прошлому, когда я сейчас строю свой проект, .exe создается в папке ProjName / obj / Debug вместо того, чтобы направляться в Папка BinDir / Debug .

Во вкладке IDE Output (при сборке) путь к сгенерированному исполняемому файлу отображается правильно, но в действительности он находится где-то еще.

Почему это так?

ОБНОВЛЕНИЕ: Сегодня на моем компьютере происходит что-то очень необычное ... Пару часов спустя я попытался снова, и теперь кажется, что исполняемый файл создается в обоих местах. Объект / версия теперь просто избыточен.

1 Ответ

0 голосов
/ 26 июня 2011

В обновлении вы описываете то, что обычно происходит со сборками Visual Basic в Visual Studio 2005. Сборка создает исполняемый файл в промежуточном каталоге (obj \ debug), а затем копирует исполняемый файл оттуда в выходной каталог окончательной сборки. (BINDIR \ отладка)

При включенном обычном минимальном ведении журнала, если вы изучите выходные данные сборки, вы увидите, что команда vbc включает переключатель /out:obj\Debug\yourproject.exe, который указывает компилятору создать исполняемый файл в каталоге obj \ debug fdirectory. Затем вы должны увидеть, как файл перемещается в вывод сборки yourproject -> C:\TestPrograms\Vb.net\yourproject\bin\Debug\yourproject.exe

Если вы используете Инструменты | Варианты | Проекты и решения | Выполните команду Build and Run, чтобы установить для свойства «Подробный вывод для сборки проекта MSBuild» значение «Подробно», вы можете увидеть гораздо больше действий с каталогом obj \ debug, а затем увидеть, как различные выходные файлы проекта копируются из этого промежуточного каталога в выходной каталог сборки. .

Макросы $(Targetdir) и $(IntermediateOutputPath) могут использоваться для доступа к этим двум каталогам, что можно увидеть с помощью события сборки, подобного этому ...

echo target: $(Targetdir)
echo intermediate: $(IntermediateOutputPath)

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

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

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