У меня есть проект, использующий дозвуковой режим, который я разработал в Visual Studio 2008 на диске C :. Нет проблем. Я только что обновился до Visual Studio 2010 (и, поскольку мой компьютер случайно умер, я теперь запускаю Windows XP, виртуализированную с помощью VirtualBox).
Проект работает без жалоб на диске C :, но если я запустил его с G: (подключенного диска, который указывает на раздел на базовом ПК), я не смогу запустить настраиваемые инструменты для дозвукового использования (ошибка указана ниже), ИЛИ запустить веб-приложение («запуск без отладки» дает мне: не удалось начать мониторинг изменений в «G: \ GPNNT \ GpnntApp \ GpnntApp»).
Это решение .net 3.5.
Казалось бы, это хорошо задокументированная и очевидная проблема. Я предпринял следующие действия:
(1) ПАКЕТНЫЙ ФАЙЛ
c:
cd "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"
caspol -all -reset
caspol -q -machine -addgroup 1 -url file:////g:\* FullTrust -name "G Drive"
caspol -q -machine -addgroup 1 -url g:\* FullTrust -name "G Drive 1"
c:
cd "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319"
caspol -all -reset
caspol -q -machine -addgroup 1 -url file:////g:\* FullTrust -name "G Drive"
caspol -q -machine -addgroup 1 -url g:\* FullTrust -name "G Drive"
pause
(Я пробовал миллионы разных форматов URL, но безрезультатно)
(2) Утилита настройки .Net 2.0 (Панель управления> Инструменты администратора)
Используя инструмент анализа, обе настройки, сделанные в пакетном файле выше, по-видимому, применяются к файлам на диске.
Я также попытался установить для группы интрасети значение FullTrust (чего я бы предпочел не делать!). Нет разницы.
(3) loadFromRemoteSources
Разумно предположить, что, хотя сам проект использует только .NET 2, сам VS2010 может использовать .NET 4 внутри себя. После еще нескольких поисков в Google (например, здесь), добавил я
<runtime> <loadFromRemoteSources enabled="true"/> </runtime>
в файлы machine.config обеих версий .net.
(4) Обновление до VS2010 SP1
Ничего из этого не изменилось. Может ли кто-нибудь пролить свет на это, прежде чем мое кровяное давление достигнет опасно высокого уровня? Полагаю, я могу вернуться к запуску всего на C :, но это кажется немного смешным в наш век виртуализации. Мне действительно нужны данные в другом месте, чем виртуальная машина.
Я отмечаю, что это сообщение SO имеет ту же проблему, и обвиняет тестовые проекты, которые не ужасно удовлетворительно. У меня также нет тестового проекта, хотя я полагаю, что где-то в DLL SubSonic могут быть ссылки на тесты.
ДОБАВЛЕНИЕ ПОСЛЕДНЕЙ МИНУТЫ: я также заметил, что SQL Server 2005/8 не будет разговаривать с G: (например, восстановить резервную копию оттуда), и предполагаю, что любое решение также позволит это сделать. Это было бы еще одним отличным подарком.