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

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

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

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

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

18 ответов


хотя мы используем систему управления версиями, мы также запускаем все наши проекты с сетевых дисков (не общих каталогов, частных каталогов на сетевых дисках). Сетевые диски резервируются каждую ночь, а также используют теневую копию Тома, поэтому, если вам нужно вернуться к чему-то до это сделал это путь к 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.исполняемый.конфигурация" (при условии установки по умолчанию).

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

<loadFromRemoteSources enabled="true"/>

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


в интересах фактического ответа на вопрос, я скопировал этот комментарий из jcarle.com:

доверительные сетевые ресурсы с Visual Studio 2010 / .NET Framework v4.0

20 января 2011, 16: 10 Если вы, как и я, храните весь свой код на сервере, вы, вероятно, узнали о доверии сетевому ресурсу с помощью CasPol.исполняемый. Однако при переходе из 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 файл: / / YourSharePath* Режиме fulltrust


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

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

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

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


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

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

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

по пути в реестре : Раздел HKEY_CURRENT_USER \Программное обеспечение \Microsoft \Команда Процессор

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

предупреждение: если вы включите эту функцию и запустите консоль с текущим каталогом UNC-имени, запустите приложения с этой консоли, а затем закройте консоль, это может вызвать проблемы в приложениях, запущенных с этой консоли.

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


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

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

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

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


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

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


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

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


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

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

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

Ерик


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

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

решение: С чистой 4.0 больше не предоставляет автоматически песочницу для сетевых сборок, вы должны сделать их полностью доверенными через машину.обновление конфигурации. http://msdn.microsoft.com/en-us/library/dd409252.aspx


работа на локальном диске и установка AJC Active Backup. Это архивирует копию исходного кода (и любой другой тип файла, который вы выбираете) каждый раз, когда вы сохраняете, но архивы малы, потому что он хранит только изменения каждый раз. Active Backup также имеет встроенный diff, чтобы увидеть, что вы сделали, и позволяет вернуться к любому редактированию.

подробнее здесь: активное резервное копирование AJC


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


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

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

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


Я нашел это полезным при попытке использовать vc11 с параллелями, которые работают на 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 path

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


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

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

Выбор B: 1. Получите копию одного из бесплатных продуктов управления версиями и реализуйте его. 2. Убедитесь, что резервное копирование 3. Проверьте это

Выбор C: Используйте один из множества доступных онлайн-репозиториев управления версиями. Гуглить, SourceForge, CodePlex, что-то.


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

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

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