Как я могу отлаживать решения в Visual Studio 2010 с общего сетевого ресурса? - PullRequest
7 голосов
/ 10 июня 2010

Недавно я приобрел новый ноутбук Mac и запускаю VS2010 на виртуальной машине Parallels.В основном это работает хорошо для меня, но у меня есть некоторые проблемы с отладкой определенных типов проектов, связанные с тем, что проекты доступны через общий сетевой ресурс.Тестовые проекты не запускаются, потому что бегущий тест не может загрузить DLL тестов.Веб-проекты не запускаются на мини-веб-сервере Visual Studio, выдавая следующее исключение:

'An error occurred loading a configuration file: Failed to start monitoring changes to path\to\web.config'.

Я провел вечер, трахая в Интернете без особой удачи в этом.Прочитав этих двух сообщений, я попробовал обычные изменения CasPol, но затем обнаружил это сообщение из одной из ранних бета-версий VS2010, указывающих, что CasPol больше не являетсянеобходимо / поддерживается в .NET 4.0 и VS2010.

Общий сетевой ресурс доступен через подключенный диск и путь UNC.Хост для UNC-пути: .pfs;согласно этой записи Windows рассматривает имена хостов, начинающиеся с точки, как происходящие из зоны Интернета.

Виртуальная машина запускает свои приложения под учетной записью администратора, которая, по-видимому, обладает всеми необходимыми разрешениями на общем сетевом ресурсе для создания, чтения, записи и удаления файлов и папок.Я говорю «кажется, что есть», так как не могу просмотреть Свойства безопасности соответствующей папки через Проводник: вкладка «Безопасность» просто отсутствует.

Кто-нибудь смог успешно загрузить и отладить веб-сайты и протестировать проекты?из общего сетевого ресурса в VS2010?

ОБНОВЛЕНИЕ: Я попытался загрузить решения в VS2010 на отдельном компьютере с Windows, используя IP-адрес моего MacBook, с неоднозначными результатами.Тестовый проект снова не удалось запустить с ошибкой:

Error loading \\192.168.0.4\alastair\Code\project\bin\Debug\Tests.dll: Could not load file or assembly 'file://\\192.168.0.4\alastair\Code\project\bin\Debug\Tests.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)

Однако проект ASP.NET MVC работает правильно, как и ожидалось в этом параметре, и я получаю точно такие же результаты здесьесли я использую NETBIOS имя MacBook.

Конечно, для этого мне пришлось включить общий доступ к SMB в Snow Leopard, который не требовался для доступа к местоположению на моей виртуальной машине Parallels.Может быть, в Parallels есть какие-то настройки, которые мне нужно настроить, чтобы изменить разрешения для общего ресурса?

Я также пометил этот вопрос, чтобы модераторы могли запросить его перемещение в StackOverflow;Я думаю, что это может быть более подходящий форум, чем SuperUser.

Ответы [ 2 ]

4 голосов
/ 16 июля 2010

Попробуйте установить <loadFromRemoteSources enabled="true"/> в элементе времени выполнения devenv.exe.config, как предложено в ответе на этот вопрос .Это устранило проблему для меня ... Visual Studio по-прежнему предупреждает меня при загрузке проекта из общего ресурса, но запуск тестов теперь работает.

0 голосов
/ 10 июня 2010

Предполагается, что проблема действительно в том, что Windows «рассматривает имена хостов, начинающиеся с точки, как происходящие из зоны Интернета».Это может быть что-то другое, но вариант (3) ниже должен быть быстрым средством (не) доказать это как часть проблемы.


Период (.) не является частоиспользуемый символ в имени хоста DNS;обычно он интерпретируется как разделитель между именем хоста и именем домена (например, localhost.localdomain ).Имена хостов DNS, как правило, ограничены «LDH» - буквы, цифры и дефисы.

Пути UNC и имена сетей Windows (NetBIOS) могут страдать от подобных проблем.Согласно RFC3696 , периоды являются законными, но вам необходимо избегать периодов, используемых в имени хоста, в соответствии с RFC1035 .Если я правильно читаю RFC1035, ваше имя хоста должно быть \.pfs вместо .pfs.

Интересно, будут ли проблемы работать нормально, если вы

  1. изменилиимя хоста (на сервере общего ресурса) на что-то не , включая точку (и соответственно обновил клиента),
  2. изменил UNC-путь к общему ресурсу (на клиенте), чтобы использовать правильный escapeпоследовательность для периодов или
  3. изменили UNC-путь к общему ресурсу (на клиенте), чтобы использовать IP-адрес вместо имени хоста.
...