webentwicklung-frage-antwort-db.com.de

Visual Studio-Projekte auf einem Netzlaufwerk aufbewahren

Wir haben es gerade geschafft, alle Dateien lokal auf einem Netzlaufwerk zu speichern. Das Problem ist, dass meine VS-Projekte jetzt auch dort gespeichert werden. (Noch kein Versionierungssystem, daran arbeite ich.) Ich weiß, ich habe in der Vergangenheit von Problemen mit diesem Verfahren gehört, aber noch nie von einer Problemumgehung gehört. Gibt es eine Arbeit in der Umgebung?

Also ist mein VS lokal installiert. Die Dateien befinden sich auf einem Netzlaufwerk. Wie kann ich das zum Laufen bringen?

EDIT: Ich weiß, was getan werden sollte, aber gibt es eine Bandhilfe, die ich jetzt anlegen kann, um dies zu beheben und das Netzlaufwerk zu warten?

EDIT 2: Ich bin sicher, dass ich etwas nicht verstehe, aber Bob King hat die richtige Idee. Ich arbeite mit dem führenden Webentwickler zusammen, wenn er wieder im Büro ist, um eine temporäre Lösung zu finden, bis wir eine Art Versionskontrolle einrichten. Danke für die Ideen.

44
Mike Wills

Während wir Source Control verwenden, führen wir auch alle unsere Projekte von Netzlaufwerken aus (nicht freigegebene Verzeichnisse, private Verzeichnisse auf Netzlaufwerken). Die Netzlaufwerke werden nachts gesichert und verwenden auch Volume Shadow Copy. Wenn Sie also zu wechseln müssen, bevor zu SC gelangt ist, können Sie dies tun.

Um Projekte mit der richtigen Berechtigung ordnungsgemäß auszuführen, führen Sie diese Schritte aus.

Im Grunde müssen Sie das freigegebene Verzeichnis nur einem Laufwerk zuordnen und dann allen Code basierend auf dieser URL die Berechtigung erteilen. Sagen Sie, Sie ordnen "N: \" zu und verwenden dann "N:\*" als Url-Muster. Es ist nicht offensichtlich, dass Sie Platzhalter benötigen, aber Sie tun dies.

30
Bob King

Die Frage ist eher allgemein gehalten, deshalb werde ich auf ein Problem antworten, vor dem ich stand.

Ich führe Visual Studio 2010 mit einer virtuellen Maschine von Parallels auf meinem Mac aus, wobei alle meine Projekte über eine Netzwerkfreigabe auf der Mac-Seite bleiben. Visual Studio lädt die Assembly-Dateien jedoch nicht von dort. Der Versuch, die Rechte mit "caspol" alleine festzulegen, hat in meinem Fall nicht geholfen.

Was mir schließlich beim Laden von Baugruppen aus einer Netzwerkfreigabe durch Visual Studio geholfen hat, war das Bearbeiten der Datei "C:\Programme (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config" ( eine Standardinstallation voraussetzen).

im XML-Abschnitt "<Runtime>" müssen Sie hinzufügen

<loadFromRemoteSources enabled="true"/>

Sie müssen möglicherweise die Berechtigungen für diese Datei ändern, um den Schreibzugriff zu ermöglichen. Speicher die Datei. Starten Sie Visual Studio neu.

19
fschaper

Um die Frage tatsächlich beantworten zu können, habe ich diesen Kommentar von jcarle.com kopiert:

Verteilen von Netzwerkfreigaben mit Visual Studio 2010/.NET Framework v4.0

20. Januar 2011, 16:10 Uhr .__ Wenn Sie wie ich sind und Ihren gesamten Code auf einem Server speichern, haben Sie wahrscheinlich gelernt, dass Sie mit CasPol.exe einer Netzwerkfreigabe vertrauen. Wenn Sie jedoch von Visual Studio 2008 (.NET Framework 2.0/3.0/3.5) zu Visual Studio 2010 (.NET Framework 4.0) wechseln, kratzen Sie sich möglicherweise am Kopf.

Wenn Sie es gewohnt sind, die Eingabeaufforderung von Visual Studio zu verwenden, um schnell zu CasPol zu gelangen, werden einige Ihrer Projekte anscheinend Ihre neuen FullTrust-Einstellungen nicht berücksichtigen. Der Grund ist, dass die Eingabeaufforderung von Visual Studio standardmäßig den Ordner .NET Framework 4.0 zu seinem Pfad hinzufügt, sofern Sie nicht genau darauf achten. Wenn Ihr Projekt noch unter .NET Framework 2.0/3.0/3.5 ausgeführt wird, müssen Sie auch CasPol für diese Versionen einstellen. Nur eine Notiz, ich hatte auch mehr Erfolg mit der Verwendung von 1 als Codegruppe anstelle von 1.2.

Um einer Netzwerkfreigabe für alle Versionen von .NET Framework zu vertrauen, rufen Sie einfach CasPol für jede Version mit dem vollständigen Pfad wie folgt auf:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CasPol -m -ag 1 -url-Datei: // YourSharePath * FullTrust
C:\Windows\Microsoft.NET\Framework\v4.0.30319\CasPol -m -ag 1 -url-Datei: // YourSharePath * FullTrust

11
afro54

Ich würde das nicht empfehlen, wenn Sie (oder auch wenn Sie nicht) mehrere Personen haben, die an den Projekten arbeiten. Du bittest nur um Ärger.

Wenn Sie jedoch der einzige sind, der daran arbeitet, vermeiden Sie viel Ärger. Die Performance wird jedoch aus dem Fenster raus. So weit es funktioniert, öffnen Sie einfach die Lösungsdatei von VS. Sie werden wahrscheinlich auf Sicherheitsprobleme stoßen, können dies jedoch mit CASPOL beheben. Wie gesagt, wird die Performance schrecklich sein. Wieder nicht empfohlen.

Tun Sie sich und Ihrem Team einen Gefallen, installieren Sie SVN oder eine andere Form der Quellcodeverwaltung und geben Sie den Code so schnell wie möglich dort ein.

EDIT: Ich werde meine Kommentare teilweise zurückziehen. Bob King erklärt im Folgenden, warum VS-Projekte von einem Netzlaufwerk ausgeführt werden. Dies ist sinnvoll. Ich würde sagen, wenn Sie es nicht aus einem bestimmten Grund wie Bob machen, bleiben Sie davon fern. Andernfalls holen Sie Ihre Enten in eine Reihe, bevor Sie eine solche Entwicklungsumgebung einrichten.

5
Kilhoffer

Ich verstehe, dass dies ein älterer Thread ist, aber dies war der beste Thread, den ich gefunden hatte, als ich nach einem ähnlichen Problem suchte, das ich mit Visual Studio 2013 in einer virtuellen Box (mit Win 8.1) und mit dem Code auf dem Host-Computer (Win 7) hatte. Obwohl ich die Lösung öffnen konnte, konnte ich nicht kompilieren. Alle anderen Antworten dazu beziehen sich auf ältere Software. Daher füge ich diese Antwort hinzu, um diese häufig gefundene Frage mit der für mich funktionierenden Lösung zu aktualisieren.

Hier ist was ich getan habe; Erstellte einen Registrierungseintrag, um einen UNC-Pfad als aktuelles Verzeichnis verwenden zu können. 

WARNUNG: Die unkorrekte Verwendung des Registrierungs-Editors kann schwerwiegende, systemweite Probleme verursachen, die möglicherweise eine Neuinstallation von Windows NT zur Korrektur erforderlich machen. Microsoft kann nicht garantieren, dass Probleme gelöst werden können, die sich aus der Verwendung des Registrierungs-Editors ergeben. Verwenden Sie dieses Tool auf eigenes Risiko. 

Unter dem Registrierungspfad: HKEY_CURRENT_USER \Software \Microsoft\Befehlsprozessor

fügen Sie den Wert DisableUNCCheck REG_DWORD hinzu und setzen Sie den Wert auf 0 x 1 (Hex). 

WARNUNG: Wenn Sie diese Funktion aktivieren und eine Konsole starten, die über ein aktuelles Verzeichnis mit einem UNC-Namen verfügt, Anwendungen von dieser Konsole aus starten und dann die Konsole schließen, kann dies zu Problemen bei den Anwendungen führen, die von dieser Konsole gestartet werden.

Diese Informationen finden Sie unter dem Link: http://support.Microsoft.com/kb/156276

3
xgo

Wie wäre es, wenn wir dies in eine Frage umformulieren, die jeder beantworten kann? Ich habe genau das gleiche Problem wie das ursprüngliche Poster.

Ich habe eine Kopie von VB 2008 (kürzlich von VB6 aktualisiert). Wenn ich meine Lösungen auf dem gesicherten Netzlaufwerk abspeichere, wird nie eine einzige Sache ausgeführt. Es gibt "teilweise vertrauenswürdige Anrufer" -Fehler für den Zugriff auf ein Modul, selbst wenn "Teilweise vertrauenswürdige Anrufer zulassen" in der Assembly festgelegt ist. Wenn ich die Dateien auf meinem (nicht gesicherten) C: speichere, wird es wunderbar laufen, bis ich es auf das Share-Laufwerk lege, das von allen verwendet werden kann, und ich wieder zu meinem Problem komme.

Dies ist keine große Anfrage. Ich möchte nur in der Lage sein, eine Lösung und eine ausführbare Datei auf das Freigabe-Laufwerk zu legen und es ohne einen unsinnigen Unsinn über die Sicherheit auszuführen. Ich sollte nicht all meine Arbeit in Formulare packen müssen.

-Edit: Ich habe das Problem gefunden, warum der AllowPartialllyTrustedCallers-Befehl ignoriert wurde. Ich versuche, auf ADODB zu verweisen, der teilweise nicht vertrauenswürdig ist. Kein Netzwerkprogramm kann also auf eine Datenbank zugreifen? Was hat Microsoft eigentlich gegen Intranets?

2
Ben

Ich hatte also ein ähnliches Problem. Visual Studio konnte keinen Netzwerkstandort erkennen, den ich für einen Laufwerksbuchstaben für irgendetwas zugeordnet hatte. Das lustige ist, dass es einen Tag lang funktioniert hat. Ich habe mein Projekt aufgebaut und angefangen zu arbeiten und hatte keine Probleme. Dann habe ich heruntergefahren und am nächsten Tag funktioniert nichts. Ich konnte keine Dateien im Code lesen/schreiben, meine ausführbaren Dateien oder irgendetwas ausgeben. Mein Projekt ist lokal, aber meine Ausgabe sollte im Netzwerk ausgegeben werden.

Das Problem ist wahrscheinlich der Administrator-Kontext, aber eine Möglichkeit, das Problem zu beheben, die ich beim Online-Graben fand, ist, Visual Studio dazu zu bringen, das fragliche Laufwerk zu durchsuchen. Es gibt viele Möglichkeiten, dies zu tun, aber VS kann zugeordnete Laufwerksbuchstaben magisch erkennen. Meine Lösung ist, den Debug-Ausgabestandort in den Projekteigenschaften aufzurufen, auf Durchsuchen zu klicken und zu meinem zuvor erstellten Ausgabestandort auf meinem Netzlaufwerk zu wechseln und Voila !!!

Ich wollte das aufbringen, weil ich einen halben Tag damit verbracht hatte, das herauszufinden und herausfand, dass es jemandem etwas Zeit sparen könnte. Vielen Dank und viel Glück !!!

Erik

1
Erik

Ich war vor kurzem mit dem gleichen Problem konfrontiert, daher dient diese Antwort eher dazu, mein eigenes Wissen zu verfolgen. Sollte es soumeone nützlich sein, ist unten das Problem und die Lösung.

Problem: NET 4.0-Projekte, SVN-Repo, Checkout-Ordner befinden sich auf lokalen Laufwerken, referenzierte Assemblys werden nach Build-Server erstellt und sind auf einem Netzlaufwerk verfügbar. Visual Studio auf W7 kann die Referenz hinzufügen, jedoch keine Projekte erstellen. 

Lösung: Da NET 4.0 nicht mehr automatisch eine Sandbox für Netzwerkassemblies zur Verfügung stellt, müssen Sie diese über machine.config voll vertrauenswürdig machen. http://msdn.Microsoft.com/de-de/library/dd409252.aspx

1
Vitaly

Tu es nicht. Wenn Sie über Quellcodeverwaltung (Versionsverwaltung) verfügen, möchten Sie nicht, dass sich Ihre Dateien auf einem Netzlaufwerk befinden. Es umgeht alles, was Sie mit der Quellcodeverwaltung erreichen möchten, denn sobald sich Ihre Dateien auf einem Netzlaufwerk befinden, kann jeder sie ändern, auch wenn Sie gerade Ihr Projekt erstellen. Ka-boooom!

PS: Das klingt für mich wie ein typischer Fall von Überentwicklung.

1
steffenj

Haben Sie spezielle Probleme?

Wenn Sie zulassen, dass mehrere Personen die Lösung öffnen, besteht Ihr erstes Problem darin, dass die .NCB-Datei (Intellisense) ausschließlich gesperrt wird und nur ein Benutzer die Klassenstruktur durchsuchen kann. Und natürlich haben Sie die Möglichkeit, dass Änderungen eines Benutzers die Änderungen des anderen Benutzers überschreiben.

1
jmatthias

ich fand dies hilfreich beim Versuch, vc11 mit Parallelen zu verwenden, die auf Mac laufen: http://social.msdn.Microsoft.com/Forums/en-US/toolsforwinapps/thread/2ffdcb01-c511-4961-834b- afd5f2fbb8e1 und insbesondere: 

1) Sie können vom lokalen Debugging zum Remote-Debugging wechseln und den Rechnernamen auf 'localhost' setzen. Dadurch wird eine Remote-Bereitstellung auf Ihrem lokalen Computer ausgeführt (dh das Verzeichnis des Projekts wird nicht verwendet). Sie müssen weder die Remote-Debugger-Tools installieren, noch müssen Sie msvsmon starten, damit dies mit localhost funktioniert.

0
vim

Sie sollten gewarnt werden, dass einige Funktionen in Visual Studio die Verwendung des Netzlaufwerks verweigern.

Die mdf-Datei der SQL Express-Benutzerinstanz muss sich beispielsweise im lokalen Laufwerk befinden.

Wenn Sie den UNC-Pfad verwenden, müssen Sie sicherstellen, dass sie kurz genug sind.

0
Dennis C

Wenn ich Sie richtig verstanden habe, werden Ihre Visual Studio-Projektdateien auf dem Netzlaufwerk gespeichert und von dort aus ausgeführt. Das ist was ich mache und keine Probleme habe. Sie müssen sicherstellen, dass Sie die Sicherheitsrichtlinie festgelegt haben. Sie können dazu Caspol verwenden oder über das Menü der Systemsteuerungs-Verwaltungswerkzeuge.

0
HAdes

Ich hatte ein ähnliches Problem beim Öffnen von Visual Studio-Projekten auf einem Netzlaufwerk. Ich habe dieses Problem behoben, indem auf meinem lokalen Laufwerk C:\ein symbolischer Link erstellt wurde, der auf das UNC-Verzeichnis verweist

z.B.

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

dann können Sie das Projekt einfach mit dem Pfad C:\Users\Self\Documents\anstelle des UNC-Pfads öffnen

(Sie müssen vorsichtig sein, da Visual Studio Sie automatisch zum Pfad "\\ domain.net .." umleitet, wenn Sie beim Durchsuchen des Projekts auf den Symlink doppelklicken. Ich musste das "C:" einfügen.\Users\'Pfad, um es mit dem Laufwerkbuchstabenpfad zu öffnen)

0
josh

Für den Fall, dass dies allen anderen hilft, musste ich die Schritte hier ausführen, um den Netzwerkfreigabestandort der Windows-Intranetzone hinzuzufügen. Beim Öffnen einer Lösung auf einer Netzwerkfreigabe (z. B. bei Verwendung von VMware Fusion und Öffnen einer Lösung von der Festplatte meines Mac) hatte ich Probleme mit Visual Studio. Ich hatte auch Probleme mit PostSharp in diesem Szenario.

0
Derek Morrison