Ich habe ein Web-Anwendungsprojekt. Ich habe DLLs, die ich in dem Projekt referenziere, das in meinem bin/ordner gespeichert wird. Nun, wenn ich eine Neuerstellung oder ein Säubern von Visual Studio mache, wird alles in diesem Ordner gelöscht. Wie verhindere ich das?Behalte Visual Studio davon ab, alles aus der Bin/beim Neuerstellen zu löschen?
Antwort
Ich werde bleiben weg von der Frage "Warum" fragen und nur sagen, wie. Markieren Sie die Dateien als schreibgeschützt und VS sollte sie nicht löschen.
-1 habe, nur weil du deine DLLs nicht im bin-Verzeichnis speichern solltest, auch wenn es eine Möglichkeit gibt, es zum Laufen zu bringen. –
Das heißt nicht, dass wir die Frage nicht beantworten sollten. Lasst uns das Heiliger retten als du für einen Ort, an dem solche Debatten angemessen sind. – billb
Eigentlich war ich mehr mit der Tatsache beschäftigt, dass die Antwort sowohl angenommen als auch die höchste angenommen wurde (zu der Zeit, als ich sie herabsetzte). Sie haben Recht, dass es eine gültige Antwort auf das gegebene Problem ist. –
Können Sie erklären, warum Sie es zuerst im Ordner bin speichern müssen? Ich erstelle immer einen separaten Ordner für Beispiel/Komponenten, wo ich alle referenzierten DLLs speichern.
IDK, bin/hat immer nur Sinn für mich gemacht. Es ist der eine Ort, an dem ausführbare Binärdateien abgelegt werden. Werden Dateien aus dem Bin verschoben/verursachen Probleme? – Earlz
@Earlz, Sie sollten ein Lib-Verzeichnis haben (einige Leute mögen auch ein Drittanbieter-Verzeichnis), wo Sie referenzierte Assemblies platzieren. Ihr Build-Skript sollte diese nach Bedarf in das Verzeichnis bin kopieren, damit Sie ein sauberes Build erhalten. – Paolo
@Paolo: Visual Studio kopiert sie automatisch in bin, wenn sie vom Ordner lib aus referenziert werden. –
Legen Sie nichts selbst in den Papierkorb. bin ist der Zielordner für Binärdateien - es ist kein Quellordner für Binärdateien.
Erstellen Sie sich einen Ordner lib
oder etwas ähnliches, um Ihre Drittanbieter-Binärdateien in. Sie könnten es sogar "Third Party Binaries" nennen, da nicht jeder weiß, dass "lib" dasselbe bedeutet. Nehmen Sie Bezug auf die Binärdateien in diesem Ordner, und Visual Studio kopiert sie bei Bedarf in die Datei bin
(einschließlich einer Neuerstellung).
+1 Die einzige richtige Antwort auf dieses Problem. – Filburt
Was ist mit Laufzeitabhängigkeiten, die Sie nicht direkt referenzieren (ich referenziere nur Build-Time-Abhängigkeiten), aber immer noch benötigt, um das Projekt zu starten? – wensveen
@wen genau dasselbe - sie gehören nicht in den Behälter –
Eine Sache die "mach es nicht so!" Menschen vergessen, ist die Quellcodeverwaltung und Software von Drittanbietern. Wenn Sie SVN verwenden, erhalten Sie oft Dateien, die bei Verwendung physischer Referenzen zu falschen Übereinstimmungen führen würden, wenn sie sich nicht am selben Ort befinden.
Ein CMS, mit dem ich gerade arbeite, baut das VS-Projekt und die Lösung auf, wenn Sie eine andere "Instanz" davon einrichten. Es speichert einige DLLs, die es benötigt ... aber wenn Sie es neu aufbauen, verschwinden sie.
Die einfache Lösung in beiden Fällen ist, wie oben beschrieben, und tun Sie es getan.
Befolgen Sie die Antwort von John Saunders und legen Sie Ihre .dll's in einen separaten Ordner. In meinem Fall habe ich diesen Ordner "ServerAssemblies" genannt. Ändere dann deine Projektdatei (in meinem Fall .csproj) und füge ein "AfterRebuild" -Ziel hinzu.
<Target Name="AfterRebuild">
<ItemGroup>
<ExtraAssemblies Include="$(SolutionDir)ServerAssemblies\**\*.*"/>
</ItemGroup>
<Copy SourceFiles="@(ExtraAssemblies)" DestinationFolder="$(ProjectDir)bin\"></Copy>
</Target>
- 1. Projekttyp aus Visual Studio löschen
- 2. Visual Studio baut alles auf
- 3. Visual Studio 2015 stürzt ab
- 4. Visual Studio stürzt ab: Anwendungsfehler
- 5. Visual Studio 2008 stürzt beim Debuggen ab
- 6. Visual Studio-Teamdienste: Repository löschen
- 7. Volltextindex erfordert Löschen und Neuerstellen - warum?
- 8. VBA zu löschen Vorlage nicht alles löschen?
- 9. Visual Studio 2010 Intellisense verlangsamt alles
- 10. Decimal.GetHashCode hängt davon ab Rollier Zeros
- 11. Visual Studio 2013 stürzt beim Start ab
- 12. Nested Linq Min() stürzt Visual Studio ab
- 13. Visual Studio stürzt ab - Newtonsoft.json Bower Fehler
- 14. Stapel im Visual Studio-Direktfenster löschen
- 15. Visual Studio 2005 stürzt beim Start ab
- 16. Visual Studio 2008 stürzt beim Laden der Lösungsdatei ab
- 17. Visual Studio 6.0 zu Visual Studio 2008
- 18. Visual Studio Debug Jump aus der Schleife
- 19. HowTo Löschen der Datenbank ConnectionStrings in Visual Studio gespeichert?
- 20. So löschen Sie alles auf der Karte
- 21. Wie Visual Studio automatisch Javascript-Konsole löschen?
- 22. Löschen der benutzerdefinierten Tooldateieigenschaft in Visual Studio 2010
- 23. Visual Studio 2010-Projekt zu Visual Studio 2012
- 24. Alles ausblenden Nur Regionen (!) In C# (Visual Studio)
- 25. Löschen Liste der letzten Projekte in Visual Studio 2015
- 26. Wie TextBlock- davon ab, eine automatische Fokus
- 27. Visual Studio 2008 - In Dateien suchen: listet alles zweimal auf
- 28. C# ist für Visual Studio wie PHP ist ... alles?
- 29. Wie kann ich ASP.net davon abhalten, das Lesen von .dll-Dateien zu markieren und dann Fehler beim Neuerstellen zu werfen?
- 30. Visual Studio 2010 Makroproblem - Beenden Alles zusammen arbeiten
Y verhindert das? – madatanic
Weil ich Dateien wie einige Assemblies für Steuerelemente, die nicht von uns und für Npgsql und AjaxControlToolkit und dergleichen besitzen. – Earlz
Wenn Sie diese Assemblys von physischen Speicherorten hinzufügen (z. B. C: \ MyAssemblies \ ...), sind sie weiterhin vorhanden. Wenn Sie Ihr Projekt auf einem anderen Computer bereitstellen möchten, müssen Sie diese Assemblys auf diesem Computer registrieren (sie im GAC installieren), wenn es sich nicht um Systemassemblys handelt. – madatanic