Visual Studio, которую уводят помешанный: 'Имя каталога является недопустимой' ошибкой при попытке скомпилировать

По некоторой очень нечетной причине моя Visual Studio 2008, при попытке скомпилировать проект C#, пытается записать вывод исполняемого файла к каталогу с тем же именем как исполняемый файл, по крайней мере, кажется, что это - то, что подразумевает сообщение об ошибке. После рабочей Компиляции на любом из моих проектов CSC.EXE сообщает о следующей ошибке компилятора:

Не мог записать в выходной файл 'D:\Projects\Examples\StringBuilderVsString\obj\Release\StringBuilderVsString.exe' - 'Имя каталога, недопустимо'.

Когда я смотрю внутри obj\Release или obj\Debug все промежуточные ресурсы, как StringBuilderVsString.pdb правильно записаны в том каталоге. В каталоге нет никаких пробелов. Ошибка происходит также при выполнении csc.exe от командной строки.

При выполнении Монитора Процесса я только вижу УСПЕХ для файлов, к которым получает доступ csc.exe, и я не вижу запросов или записи в местоположения, которые делают не существуют.

Любые идеи заняться этим приветствуются.

11
задан Abel 15 September 2010 в 07:37
поделиться

1 ответ

Решено! Спасибо за вклад, я тем временем нашел решение. Причина редка, но может случиться с другими, поэтому я решил ответить на свой вопрос здесь:

Причина

Неверное или недоступное % TEMP% местоположение или недоступное % USERPROFILE% путь.

Я переместил эти пути на более быстрый SSD-диск, чтобы ускорить компиляцию. Привод сломался, и ОС его больше не нашла (как сообщается на ServerFault здесь ), и, следовательно, перемещенные места (интернет-кеши, мои документы и временные файлы) стали недоступными.

Ошибка, упомянутая Visual Studio, вводит в заблуждение: она не имеет ничего общего с именем файла (хотя мне все еще интересно, почему он запрашивал исполняемый файл как каталог), ошибка была связана с расположением% TEMP% быть плохим.

Решение

Исправьте переменные среды % USERPROFILE% или % TEMP% (если вы забыли, они находятся здесь: Система> Дополнительно> Переменные среды ).

Примечание. Типичная настройка TEMP по умолчанию - использовать переменную среды USERPROFILE, как в % USERPROFILE% \ AppData \ Local \ Temp по умолчанию. Это работает, но только если в реестре ключ в HKCU \ Environment \ TEMP имеет тип REG_EXPAND_SZ , а не REG_SZ .

13
ответ дан 3 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: