Хранение проектов Visual Studio на сетевом диске

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

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

РЕДАКТИРОВАТЬ: Я знаю, что СЛЕДУЕТ сделать, но есть ли пластырь, который я могу надеть прямо сейчас, чтобы исправить это и сохранить сетевой диск?

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


person Mike Wills    schedule 01.10.2008    source источник
comment
Дайте парню передохнуть людям! Он, очевидно, знает, что это плохая ситуация, но сколько раз вы были в плохой ситуации раньше? Дерьмо бывает. Иногда у вас нет времени или денег, чтобы разобраться с этим немедленно.   -  person Bob King    schedule 02.10.2008
comment
Что вы имеете в виду, говоря, есть ли обходной путь? Решение какой проблемы?   -  person HAdes    schedule 02.10.2008
comment
Кроме того, почему все предполагают, что несколько человек используют один и тот же каталог? На оригинальном плакате нигде не сказано, что код доступен всем разработчикам. Вы знаете, что говорят о людях, считающих ...   -  person Bob King    schedule 02.10.2008
comment
Это личный ресурс. Никто, кроме меня, им не пользуется.   -  person Mike Wills    schedule 02.10.2008
comment
Думаю, всем приходилось предполагать худшее, когда автор не уточнял и не приводил достаточно подробностей. Боб, я все еще согласен с вашими причинами, по которым вы делаете это так, как вы, но в противном случае я предостерегаю от этого.   -  person user9991    schedule 02.10.2008
comment
Было бы полезно, если бы вы подробно описали причины, по которым вы хотите, чтобы это было в сети.   -  person Kilhoffer    schedule 02.10.2008
comment
Я предполагаю, что иногда у руководства есть «лучшая» идея. Я бы попытался получить контроль над исходным кодом, как только вы сможете. Я согласен с этим.   -  person Bob King    schedule 02.10.2008
comment
Согласованный. Это должно быть приоритетным.   -  person Kilhoffer    schedule 02.10.2008
comment
Мне нравится, как люди голосуют против меня только потому, что им не нравится, что я не бью ОП по голове из-за отсутствия SC. Иногда вам просто нужно довольствоваться тем, что у вас есть. Бывает.   -  person Bob King    schedule 02.10.2008
comment
ОП не в идеальной ситуации, И ОН ЗНАЕТ, ЧТО ... Давайте все равно распнем его! И всех, кто пытается позволить ему обойтись тем, что у него есть!   -  person Bob King    schedule 02.10.2008
comment
Я даже видел магазины, где разработчики были разбросаны по штатам и вообще не использовали систему контроля версий, потому что их ИТ-специалисты были слишком неконкурентоспособны, чтобы настроить VPN. На самом деле они отправили код друг другу по электронной почте. Как я уже сказал, Боб, я поддержал тебя. Я не знаю, откуда это.   -  person Kilhoffer    schedule 02.10.2008
comment
Ханжеский и высокомерный ... убежденный в своей правоте. Я ценю ваше редактирование, Килхоффер!   -  person Bob King    schedule 02.10.2008
comment
Без проблем. Я не боюсь признать свою неправоту и не боюсь прислушиваться к разуму. Вы правильно подметили.   -  person Kilhoffer    schedule 02.10.2008
comment
Спасибо! Не знаю, почему это превратилось в такую ​​священную войну ...   -  person Bob King    schedule 02.10.2008
comment
Я тоже, но иногда забавно видеть, как люди так злятся по поводу обсуждаемых здесь тем.   -  person Kilhoffer    schedule 02.10.2008
comment
Я не думал, что детали важны для вопроса. Вопрос в моей голове требовал простого ответа: нет или да, и вот как это сделать.   -  person Mike Wills    schedule 02.10.2008
comment
Что я и пытался сделать ... Извините, все это оказалось такой проблемой!   -  person Bob King    schedule 03.10.2008
comment
Кстати, проблемы с Caspol были исправлены в 2008 Sp1.   -  person NotMe    schedule 09.10.2008
comment
@MikeWills - Каково было ваше окончательное решение по этому поводу?   -  person Ryan S    schedule 04.08.2014


Ответы (17)


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

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

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

person Bob King    schedule 01.10.2008
comment
вы должны долгое время не проверять код в системе контроля версий? Я никогда не слышал, чтобы кто-то установил теневую копию, чтобы обеспечить откат кода, который еще даже не зафиксирован. - person Kilhoffer; 02.10.2008
comment
Мы выполняем теневое копирование ежечасно ... Я проверяю, когда функция закончена. Иногда VS дает сбой, и у вас больше нет буфера отмены. - person Bob King; 02.10.2008
comment
В VS теперь есть возможность восстановления. Не могу сказать, что за последние несколько лет я хоть раз терял код. это было в прошлом - person user9991; 02.10.2008
comment
Я потерял часы работы из-за тяжелого сбоя VS, который также удалил версии для восстановления ... - person MagicKat; 02.10.2008
comment
Думаю, если бы я тоже продолжал терять код, мне пришлось бы реализовать что-то подобное. К счастью, со мной этого еще не произошло. Должен делать то, что должен, верно? Не могу винить вас за это! - person Kilhoffer; 02.10.2008
comment
В основном все наши документы находятся в общих сетевых папках с включенным теневым копированием тома. Это касается всей компании, а не только разработчиков. Эта дополнительная подстраховка может пригодиться. - person Bob King; 02.10.2008
comment
Я покопаюсь в этом. В качестве действительно быстрого обходного пути я скопировал нужный мне проект на локальный диск. Я посмотрю, как это решение работает, когда закончу, и вернусь ко всем вам. - person Mike Wills; 02.10.2008
comment
У нас тоже есть такая настройка, но когда сетевой диск выходит из строя, это неприятно. Кроме того, с большими объектами открывается намного медленнее. - person Greg; 24.05.2010
comment
Для меня важно, чтобы мои проекты разработки находились на моем физическом жестком диске в VirtualBox, вам нужно настроить ваши общие папки как сетевые диски. VS не очень хорошо с этим справляется, но я никогда не настраивал политику CAS, поэтому, надеюсь, ответ Кинга поможет в этом. У меня были всевозможные проблемы со сборкой или выполнением обычных задач. - person kamranicus; 05.07.2011
comment
Ссылка в ответе не работает. На это указывалось в другом вопросе, который может быть дубликатом. - person drescherjm; 16.01.2020

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

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

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

в разделе xml «‹runtime>» вы должны добавить

<loadFromRemoteSources enabled="true"/>

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

person fschaper    schedule 18.04.2012
comment
Мне также пришлось добавить это в WcfSvcHost.exe.config, чтобы отлаживать службу WCF. - person Rhyous; 10.02.2013
comment
Вы знаете, есть ли аналог для VS2012? Или удаленные источники включены по умолчанию? - person Michael; 12.02.2014
comment
Я в той же ситуации, но ваше решение не сработало. Я получаю ту же ошибку, что и при создании или открытии файла базы данных просмотра C ++ \\192.168.56.128\export\workspace\myproject\.vs\RDPWrap\v16\Browse.VC.db. - person Necktwi; 13.08.2019

Чтобы ответить на вопрос, я скопировал этот комментарий с jcarle.com:

Доверие к общим сетевым ресурсам с помощью Visual Studio 2010 / .NET Framework v4.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 file: // YourSharePath * FullTrust
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ CasPol - m -ag 1 -url file: // YourSharePath * FullTrust

person afro54    schedule 28.06.2011
comment
Милая, это отлично сработало. Спасибо! PS - Я работаю точно так же, мне нравится иметь возможность использовать терминал для работы с командной строкой Git, а виртуальная машина для работы с Visual Studio. - person Bealer; 07.03.2012

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

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

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

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

person Kilhoffer    schedule 01.10.2008

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

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

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

В пути реестра: HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor

добавьте значение DisableUNCCheck REG_DWORD и установите значение 0 x 1 (Hex).

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

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

person xgo    schedule 25.02.2015

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

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

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

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

person Ben    schedule 24.05.2010

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

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

person steffenj    schedule 01.10.2008
comment
При использовании Mac с виртуальной машиной, такой как параллели или VMWare, это нецелесообразно. Вы же не хотите иметь две кодовые базы на одной машине разработчика. - person ariestav; 13.04.2016

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

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

person jmatthias    schedule 01.10.2008

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

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

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

Эрик

person Erik    schedule 09.09.2011

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

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

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

person Community    schedule 28.02.2012

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

e.g.

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

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

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

person josh    schedule 19.04.2018
comment
Там, где я работаю, у всех нас есть собственная личная папка «Документы», сопоставленная с сетевым диском, поэтому на самом деле мы не используем ее в качестве общего решения для управления версиями, а только для дополнительной резервной копии. (Вы никогда не можете быть слишком осторожными) - person josh; 19.04.2018

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

person HAdes    schedule 01.10.2008

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

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

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

person Dennis C    schedule 24.11.2009

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

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

person vim    schedule 17.03.2012

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

person Derek Morrison    schedule 29.03.2013

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

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

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

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

person NotMe    schedule 01.10.2008

Ну, мой вопрос был бы в том, почему вы это задаете. Он не работает, когда вы храните его на сетевом диске? Я сам этого не пробовал, и одна проблема, которую я мог себе представить, будет заключаться в том, что код .NET, работающий с сетевого диска (то есть из каталога bin \ Debug, также находящегося на сетевом диске), будет работать в режиме песочницы, если вы не возитесь с CASPOL (или используете 3.5 SP1, который, как я слышал, устранил это препятствие).

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

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

person Lasse V. Karlsen    schedule 01.10.2008