Вопрос

Мы только что перешли от локального хранения всех файлов к сетевому диску.Проблема в том, что именно там сейчас также хранятся мои проекты VS.(Пока нет системы управления версиями, работаю над этим.) Я знаю, что слышал о проблемах с выполнением этого в прошлом, но никогда не слышал об обходном пути.Есть ли какой-то обходной путь?

Итак, мой VS установлен локально.Файлы находятся на сетевом диске.Как я могу заставить это сработать?

Редактировать:Я знаю, что нужно сделать, но есть ли пластырь, который я могу наложить прямо сейчас, чтобы исправить это и обслуживать сетевой диск?

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

Это было полезно?

Решение

Хотя мы используем систему управления версиями, мы также запускаем все наши проекты с сетевых дисков (не с общих каталогов, а с частных каталогов на сетевых дисках).Резервное копирование сетевых дисков выполняется каждую ночь, а также используется теневое копирование томов, поэтому, если вам нужно вернуться к чему-то до того, как это проделало свой путь в SC, тогда вы сможете.

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

По сути, вам просто нужно сопоставить общий каталог с диском, а затем предоставить разрешение на основе этого URL-адреса для всего кода.Допустим, вы сопоставляете "N: \", затем используйте "N: \*" в качестве шаблона URL.Не очевидно, что вам нужен подстановочный знак, но вы это делаете.

Другие советы

Вопрос довольно общий, поэтому я дам ответ на одну проблему, с которой я столкнулся.

Я запускаю Visual Studio 2010, используя виртуальную машину Parallels на своем Mac, сохраняя при этом все свои проекты на стороне Mac через общий сетевой ресурс.Однако Visual Studio не загружала файлы сборки проектов оттуда.Попытка установить права, используя только "caspol", в моем случае не помогла.

Что, наконец, сработало для меня, позволив Visual Studio загружать сборки из общего сетевого ресурса, так это отредактировать файл "C:\Program Файлы (x86)\ Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config" (предполагается установка по умолчанию).

в разделе xml "<runtime>" вы должны добавить

<loadFromRemoteSources enabled="true"/>

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

В интересах реального ответа на вопрос я скопировал этот комментарий с jcarle.com:

Доверительные сетевые ресурсы с Visual Studio 2010 / .NET Framework версии 4.0

20 Января 2011, 16:10 вечера Если вы похожи на меня и храните весь свой код на сервере, вы, вероятно, узнали о доверии сетевому ресурсу с помощью CasPol.exe.Однако при переходе с Visual Studio 2008 (.NET Framework 2.0/3.0/3.5) на Visual Studio 2010 (.NET Framework 4.0) вы можете обнаружить, что ломаете голову.

Если вы привыкли использовать командную строку Visual Studio для быстрого доступа к CasPol, вы можете обнаружить, что некоторые из ваших проектов, похоже, не будут соответствовать вашим новым настройкам FullTrust.Причина в том, что, если вы не будете внимательно следить, в командной строке Visual Studio по умолчанию добавляется папка .NET Framework 4.0 в свой путь.Если ваш проект все еще выполняется под .NET Framework 2.0/3.0/3.5, потребуется установить CasPol и для этих версий.Просто отмечу, что лично я также добился большего успеха, используя 1 в качестве группы кода вместо 1.2.

Чтобы доверять общему сетевому ресурсу для всех версий .NET Framework, просто вызовите CasPol для каждой версии, используя полный путь, как показано ниже:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CasPol -m -ag 1 -url файла://YourSharePath* Полное доверие
C:\Windows\Microsoft.NET\Framework\v4.0.30319\CasPol -m -ag 1 -url файла://YourSharePath* Полное доверие

Я бы не рекомендовал делать это, если у вас есть (или даже если у вас их нет) несколько человек, которые работают над проектами.Ты просто напрашиваешься на неприятности.

С другой стороны, если вы будете единственным, кто работает над этим, вы избежите большей части неприятностей.Однако производительность будет выброшена за окно.Что касается того, как заставить это работать, вы просто открываете файл решения из VS.Скорее всего, вы столкнетесь с проблемами безопасности, но можете исправить это с помощью CASPOL.Однако, как я уже сказал, производительность будет ужасной.Опять же, совсем не рекомендуется.

Сделайте одолжение себе и своей команде - установите SVN или какую-либо другую форму управления версиями и вставьте туда код как можно скорее.

Редактировать:Я частично откажусь от своих комментариев.Боб Кинг объясняет ниже причину, по которой они запускают проекты VS с сетевого диска, и это имеет смысл.Я бы сказал, если вы не делаете это по какой-то определенной причине, как Боб, держитесь от этого подальше.В противном случае, поставьте своих уток в ряд, прежде чем настраивать такую среду разработки.

Я понимаю, что это более старый поток, но это был лучший поток, который я нашел, когда пытался решить аналогичную проблему, у меня была Visual Studio 2013 на виртуальном компьютере (используя Win 8.1) и код на хост-компьютере (Win 7).Хотя я мог открыть решение, я не смог скомпилировать его.Все остальные ответы на этот вопрос относятся к более старому программному обеспечению, поэтому я добавляю этот ответ, чтобы обновить этот часто встречающийся вопрос решением, которое сработало у меня.

Вот что я сделал;Внес запись в реестр, чтобы иметь возможность использовать UNC-путь в качестве текущего каталога.

ПРЕДУПРЕЖДЕНИЕ:Неправильное использование редактора реестра может вызвать серьезные общесистемные проблемы, для устранения которых может потребоваться переустановка Windows NT.Корпорация Майкрософт не может гарантировать, что любые проблемы, возникающие в результате использования редактора реестра, могут быть решены.Используйте этот инструмент на свой страх и риск.

В разделе путь к реестру:HKEY_CURRENT_USER \Программное обеспечение \Microsoft \Командный процессор

добавьте значение DisableUNCCheck REG_DWORD и установите значение равным 0 x 1 (шестнадцатеричное).

ПРЕДУПРЕЖДЕНИЕ:Если вы включите эту функцию и запустите консоль с текущим каталогом с именем UNC, запустите приложения с этой консоли, а затем закройте Консоль, это может вызвать проблемы в приложениях, запущенных с этой консоли.

Нашел эту информацию по ссылке: http://support.microsoft.com/kb/156276

Как насчет того, чтобы перефразировать это в вопрос, на который каждый может ответить?У меня точно такая же проблема, как и с первоначальным постером.

У меня есть копия VB 2008 (недавно обновлена с VB6).Если я сохраню свои решения на резервном сетевом диске, то он никогда ничего не запустит.Это выдает ошибки "частично доверенного вызывающего абонента" для доступа к модулю, даже если в сборке установлено значение "allowpartiallytrustedcallers".Если я сохраню файлы на моем (без резервной копии) C:, то он будет работать чудесно, пока я не помещу его на общий диск, чтобы все могли им пользоваться, и я вернусь к своей той же проблеме.

Это не такая уж большая просьба.Я просто хочу иметь возможность поместить решение и исполняемый файл на общий диск и запустить его без абсурдного количества ерунды о безопасности.Мне не нужно было бы запихивать всю свою работу в файлы форм.

-Редактировать:Я обнаружил проблему с тем, почему он игнорировал команду AllowPartialllyTrustedCallers.Я пытаюсь сослаться на ADODB, который не допускает частичного доверия.Значит, ни один сетевой исполняемый файл не может получить доступ к базе данных?В любом случае, что Microsoft имеет против интрасетей?

Не делай этого.Если у вас есть система управления версиями (versioning), вы не хотите, чтобы ваши файлы находились на сетевом диске.Это полностью обходит все, чего вы хотите достичь с помощью системы управления версиями, потому что, как только ваши файлы окажутся на сетевом диске, любой желающий сможет их изменить ....даже когда вы в данный момент создаете свой проект.Ка-буум!

PS:для меня это звучит как типичный случай чрезмерной инженерии.

У вас возникли какие-то конкретные проблемы?

Если вы разрешите нескольким пользователям открывать решение, ваша первая проблема будет заключаться в том, что файл .NCB (Intellisense) будет заблокирован исключительно и только один пользователь сможет просматривать дерево классов.И, конечно, у вас есть вероятность, что изменения одного пользователя перезапишут изменения другого пользователя.

Итак, у меня возникла аналогичная проблема.Visual Studio ни за что не распознала бы сетевое местоположение, которое я сопоставил с буквой диска.Самое смешное, что в течение одного дня это работало.Я настроил свой проект и начал работать над ним, и у меня не возникло никаких проблем.Затем я отключаюсь, и на следующий день ничего не работает.Я не мог читать / записывать файлы в коде, выводить свои исполняемые файлы или что-то еще.Мой проект локальный, но мои выходные данные предназначались для размещения в сети.

В любом случае, проблема, вероятно, связана с контекстом администратора, но один из способов исправить это, который я нашел, копаясь в Интернете, - это заставить Visual Studio каким-то образом перейти к соответствующему диску.Есть много способов сделать это, но VS волшебным образом сможет распознавать сопоставленные буквы дисков.Мое решение состоит в том, чтобы перейти к местоположению вывода отладки в свойствах проекта, нажать обзор и перейти к моему ранее созданному местоположению вывода на моем сетевом диске и вуаля!!!

Я хотел опубликовать это, потому что потратил полдня, пытаясь разобраться в этом, и решил, что это может сэкономить кому-то еще немного времени.Большое спасибо и удачи!!!

Эрик

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

Проблема:Папки NET 4.0 projects, SVN repo, checkout находятся на локальных дисках, сборки, на которые ссылаются, создаются сервером сборки и доступны на сетевом диске.Visual Studio на W7 способна добавлять ссылку, но не может создавать проекты.

Решение:Поскольку NET 4.0 больше не предоставляет автоматически изолированную среду для сетевых сборок, вы должны сделать их полностью надежными с помощью обновления machine.config . http://msdn.microsoft.com/en-us/library/dd409252.aspx

Если я вас правильно понял, файлы вашего проекта Visual Studio хранятся на сетевом диске, и вы запускаете их оттуда.Это то, что я делаю, и у меня не возникает никаких проблем.Вам нужно будет убедиться, что вы установили политику безопасности.Вы можете использовать Каспол для этого или через панель управления-меню admin tools.

Вы должны быть предупреждены, что некоторые функции Visual Studio откажутся работать с сетевым диском.

Например, mdf-файл пользовательского экземпляра SQL Express должен находиться на локальном диске.

Для другого примера, если вы используете UNC path, вы должны убедиться, что они достаточно короткие.

я нашел это полезным при попытке использовать vc11 с parallels, которые работают на Mac:http://social.msdn.microsoft.com/Forums/en-US/toolsforwinapps/thread/2ffdcb01-c511-4961-834b-afd5f2fbb8e1, и конкретно:

1) Вы можете переключиться с локальной отладки на удаленную и задать имя компьютера как "localhost".Это позволит выполнить удаленное развертывание на вашем локальном компьютере (таким образом, не используя каталог проекта).Вам не нужно устанавливать инструменты удаленного отладчика или запускать msvsmon, чтобы это работало на localhost.

На случай, если это поможет кому-то еще, я должен был выполнить описанные шаги здесь чтобы добавить расположение общего сетевого ресурса в зону интрасети Windows.В частности, у меня возникли проблемы с зависанием Visual Studio при загрузке при открытии решения на общем сетевом ресурсе (т.е.используя VMware Fusion и открывая решение с жесткого диска моего Mac).У меня также были проблемы с запуском PostSharp в этом сценарии.

У меня была похожая проблема с открытием проектов Visual Studio на сетевом диске, и я исправил ее, создав символическую ссылку на моем локальном диске C: \, которая указывает на каталог UNC

например ,

mklink /D "C:\Users\Self\Documents" "\\domain.net\users\self\My Documents"

затем вы можете просто открыть проект, используя C:\Users\Self\Documents\ path вместо UNC-пути

(Вы должны быть осторожны, потому что Visual Studio автоматически перенаправит вас на путь '\\domain.net ..', если вы дважды щелкните символическую ссылку при просмотре проекта.Мне пришлось скопировать и вставить в 'путь\ C:\Users чтобы получить его, чтобы открыть путь с буквой диска)

"Как я могу заставить это работать?" У вас есть пара вариантов:

Выбор А:1.Переместите все файлы обратно на локальный жесткий диск 2.Установите на свой компьютер какое-либо программное обеспечение для резервного копирования 3.Протестируйте указанное решение для резервного копирования 4.продолжайте кодировать

Выбор В:1.Получите копию одного из БЕСПЛАТНЫХ продуктов системы управления версиями и внедрите его.2.Убедитесь, что у него есть резервная копия 3.Проверьте это

Выбор С:Используйте одно из множества доступных ОНЛАЙН-репозиториев системы управления версиями.Google, SourceForge, CodePlex, что-то еще.

Что ж, мой вопрос был бы в том, почему вы об этом спрашиваете.Разве он не работает, когда вы сохраняете его на сетевом диске?Я сам этого не пробовал, и одна из проблем, которую я мог себе представить, заключалась бы в этом .СЕТЕВОЙ код, запускаемый с сетевого диска (т.Е.из каталога bin \ Debug, также расположенного на сетевом диске) будет работать в режиме изолированной среды, если вы не будете возиться с CASPOL (или использовать 3.5 SP1, который, как я слышал, устранил это препятствие).

Если у вас есть конкретные проблемы, спросите о них.Никогда не спрашивайте "Почему выполнение X не работает?".

Вы не говорите, являетесь ли вы только одним человеком или несколькими лицами, получающими доступ к одному и тому же удаленному диску, но я предполагаю, что вы только один для каждого сетевого каталога.Правильно ли это?Если нет, то нет, никакого лейкопластыря нет.Получите контроль версий, переместите файлы обратно на локальный диск.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top