Смешение выражения: Получение ошибки “XXX” не существует в пространстве имен "XXX", но не в VS2008

У Raymond Chen есть несколько идей:

https://devblogs.microsoft.com/oldnewthing/20050128-00/? p=36573

, Заключенный в кавычки здесь полностью, потому что архивы MSDN склонны быть несколько ненадежными:

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

set OLDDIR=%CD%
.. do stuff ..
chdir /d %OLDDIR% &rem restore current directory

(Конечно, каталог, save/restore, возможно, более легко был сделан с pushd / popd, но это не точка здесь.)

Эти %CD% прием удобен даже из командной строки. Например, я часто оказываюсь в каталоге, где существует файл, на который я хочу воздействовать, но... о, мне нужно к chdir к некоторому другому каталогу для выполнения той операции.

set _=%CD%\curfile.txt
cd ... some other directory ...
somecommand args %_% args

(мне нравится использовать %_% в качестве моей переменной среды царапины.)

Тип SET /? для наблюдения других псевдопеременных, обеспеченных командным процессором.

Также комментарии в статье определенно стоят просканировать, например, этого (с помощью Wayback Machine, так как комментариев не стало от более старых статей):

http://blogs.msdn.com/oldnewthing/archive/2005/01/28/362565.aspx#362741

Это покрывает использование % ~dp0:

, Если Вы хотите знать, где пакетный файл живет: %~dp0

%0 название пакетного файла. ~dp дает Вам диск и путь указанного аргумента.

29
задан CLaRGe 3 April 2011 в 00:17
поделиться

1 ответ

У меня была такая же проблема с Blend 2 на Windows Vista 64.

Обычно я компилирую свое решение в VS2008 с целью «Отладка - x86» для всех моих проектов, поэтому что он совместим с некоторыми другими 32-битными проектами.

Похоже, Blend любит цели «Отладка - любой процессор». Я в основном изменил свой диспетчер конфигурации так, чтобы он нацелен на любые платформы ЦП вместо x86.

Итак ...

  • Откройте свое решение в Blend и в VS2008
  • В VS2008 выберите меню Build -> Configuration Manager
  • Убедитесь, что ваше решение в конфигурации есть «Отладка - любой процессор» для всех проектов
  • Скомпилировать в VS2008
  • tadaaaa Ваш смешанный проект должен обновить и удалить эти ошибки ... ну, это помогло мне

Я сделал противоположное, чтобы проверить, действительно ли это так, и кажется, что да ... Я просто вернул изменения решения обратно на Debug - x86, очистил все и перекомпилировал, и я все еще вернулся с ошибкой «Не существует [...]»

Насчет «Почему?» ... не знаю, но по крайней мере теперь работает!

30
ответ дан 28 November 2019 в 01:20
поделиться