Ich weiß, wenn Sie Visual Studio verwenden, wenn Sie die composite.generated.dll entfernen, kann es neu erstellen und eine neue Datei erstellen, aber wenn diese Datei in der Produktion aus irgendeinem Grund entfernt wird, kann es neu erstellen. Ich habe einige Tests durchgeführt und bin zu der Annahme gelangt, dass es nicht möglich ist, aber ich wollte nur sicherstellen, dass ich nicht etwas verpasse, das getan werden kann, um die composite.gene_ready.dll im Bin wieder aufzubauen, wenn für eine Chance es nicht war t existieren.Kann composite.generated.dll die Wiederherstellung selbst durchführen, wenn sie nicht existiert?
Antwort
TL; DR
Achten Sie darauf, keine dynamischen Datentypen haben, und wenn Sie das tun, stellen Sie sicher, dass kein Code in App_Code ist Ihre dynamischen Typen verweisen.
Lange Version
Composite.Generated.dll enthält Klassen Umsetzung alle Datentypen/Schnittstellen, die zur Laufzeit dynamisch erstellt werden, um die Datenprovider zum Ziel, die die Daten für einen Typ containst.
Wenn Sie mit statischen Typen arbeiten, also mit Schnittstellendateien, die in Ihrer Lösung erstellt wurden, verweist Ihr gesamter Code auf sie und es gibt keinen Verweis auf Composite.Generated.dll an irgendeinem Punkt, und Ihre Website kann gestartet werden und Composite kann fortfahren und Composite.Generated.dll neu compilieren, wenn es fehlt oder veraltet ist.
Beim Arbeiten mit dynamischen Typen erstellen Sie keine Schnittstellendatei, sondern erstellen den Typ mit dem CMS-Editor. Was hinter den Kulissen geschieht, ist, dass Composite ein Interface für Sie erstellt und es zu Composite.Generated.dll hinzufügt, das Code in App_Code ermöglicht, diese Schnittstelle zu erkennen und darauf zu verweisen. Das Problem besteht nun darin, dass Sie eine zyklische Abhängigkeit haben. Falls Sie Composite.Generated.dll löschen, kann die Website nicht starten, da sie automatisch zuerst versucht, den gesamten Code in App_Code zu kompilieren, was fehlschlagen wird, da sie auf eine Schnittstelle verweist, die nicht mehr existiert. Daher kann Composite Composite.Generated.dll nicht gestartet und neu kompiliert werden - ein klassisches Henne-Ei-Problem.
Ich quick-fix für dieses Szenario ist es, alle Dateien aus App_Code zu verschieben, die die Website starten können, Composite kann die Composite.Generated.dll-Datei neu kompilieren und Sie können die Dateien zurück nach App_Code verschieben.
Eine robustere Lösung ist, dynamische Typen in der Produktion einfach zu vergessen. Es eignet sich hervorragend für das schnelle Prototyping während der Entwicklung, verursacht jedoch zu viele Probleme auf den Produktionsstandorten.
- 1. Markieren Sie UIButton, wenn Sie die Schaltfläche selbst nicht auswählen
- 2. Eigenschaft kann nicht zugeordnet werden, wenn sie nicht existiert EF
- 3. getimagesize Rückgabe Array selbst die Datei existiert nicht
- 4. Ich kann die Daten nicht speichern, selbst wenn ich __block
- 5. Wenn die Anweisung sich nicht selbst verhält
- 6. Kann ein Pthread die Reinigung alleine durchführen?
- 7. Sollte ein Modell selbst eine Berechnung durchführen?
- 8. Makefile - Machen Sie Abhängigkeit nur, wenn die Datei nicht existiert
- 9. Datenbankdatei (.sdf) erstellen, wenn sie nicht existiert?
- 10. Nichts tun, wenn die Tabelle nicht existiert
- 11. iOS IAP Wiederherstellung funktioniert nicht
- 12. Laden Sie session_start() nur, wenn die Sitzung nicht existiert?
- 13. Datenbank kann nicht von Version 2 auf 1 heruntergestuft werden, selbst nach einer Neuinstallation und -wiederherstellung
- 14. Automatische Migrationen, wenn die Protokolltabelle nicht existiert
- 15. Debugger des nicht in die Funktion treten, selbst wenn Bedingungen
- 16. Kann nicht Instrumentierung Tests durchführen, nachdem ich
- 17. Webbrowser kann Suche und Authentifizierung nicht durchführen
- 18. Wie kann ich die monatliche Abonnementkreditkartenabrechnung durchführen?
- 19. fwrite wenn Datei nicht existiert?
- 20. HttpHandler feuert nur, wenn die Datei nicht existiert
- 21. Postgresql einfügen, wenn nicht existiert
- 22. einfügen, wenn nicht existiert oracle
- 23. Wenn Sitzung existiert oder nicht
- 24. RESTful PUT, wenn nicht existiert?
- 25. javascript: Definieren Sie eine Variable, wenn sie nicht existiert
- 26. Deaktivieren Sie die Wiederherstellung IAP, wenn das gleiche Apple-Konto, aber andere Benutzerkonto in der Anwendung
- 27. Wie kann die Wiederherstellung von Fragmenten verhindert werden, wenn diese aus NavigationDrawer ausgewählt wird?
- 28. Android verhindert die Wiederherstellung der Aktivität
- 29. erstellen, wenn nicht existiert Ansicht?
- 30. symfony existiert return false, auch wenn die Datei existiert?
können Sie die Antwort bitte als richtig markieren, wenn sie für Ihre Frage hilfreich war. –
Vielen Dank. Hat mir ziemlich geholfen. Wir haben einige Umgebungen, in denen wir entwickeln und alles so halten, dass wir Websites verschieben können, ohne Probleme zu verursachen. Dies ist ein Problem, an dem wir noch arbeiten. Hauptsächlich, wenn Datentypen in Composite in jeder Umgebung hinzugefügt und geändert werden und Probleme mit nicht übereinstimmenden GUIDS verursacht werden. – FewestKitten896