Хранение проектов Visual Studio на сетевом диске - PullRequest
44 голосов
/ 02 октября 2008

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

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

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

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

Ответы [ 17 ]

30 голосов
/ 02 октября 2008

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

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

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

19 голосов
/ 19 апреля 2012

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

Я запускаю 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 "" вы должны добавить

<loadFromRemoteSources enabled="true"/>

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

11 голосов
/ 28 июня 2011

В интересах ответа на вопрос я скопировал этот комментарий с сайта 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 файл: // YourSharePath * FullTrust
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ CasPol -m -ag 1 -url file: // YourSharePath * FullTrust

5 голосов
/ 02 октября 2008

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

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

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

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

3 голосов
/ 25 февраля 2015

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

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

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

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

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

ВНИМАНИЕ: Если вы включите эту функцию и запустите консоль с текущим каталогом с именем UNC, запустите приложения с этой консоли и закроете консоль, это может вызвать проблемы в приложениях, запущенных с этой консоли. *

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

2 голосов
/ 24 мая 2010

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

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

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

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

1 голос
/ 02 октября 2008

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

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

1 голос
/ 28 февраля 2012

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

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

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

1 голос
/ 10 сентября 2011

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

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

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

Эрик

1 голос
/ 02 октября 2008

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

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

...