Wir verwenden NSASS, um unsere Sass-Dateien in CSS zu kompilieren (https://github.com/TBAPI-0KA/NSass). NSASS ist eingerichtet und funktioniert hervorragend in der Entwicklungsumgebung. Aber wenn wir versuchen, es auf unseren Testserver zu deployen, können wir NSASS nicht zum Laufen bringen.
Wir erhalten immer
Ausnahmefehlerinformationen:
Ausnahmeart: FileNotFoundException
Ausnahmemeldung: Die Datei oder Assembly "NSass.Wrapper.x64.dll" oder eine Abhängigkeit davon wurde nicht gefunden. Das angegebene Modul wurde nicht gefunden.
bei NSass.SassCompiler..ctor()
bei NSass.SassHandler..ctor()
Das Problem ist, dass NSASS eine dynamische Methode zum Laden dieser DLLs verwendet, die anscheinend nicht funktioniert. Die DLL befindet sich im Verzeichnis \bin\NSass.Wrapper, aber fuslogvw protokolliert nur, dass es versucht, das bin-Verzeichnis zu durchsuchen. Die dynamische Art und Weise, diese DLL zu laden, ist so konzipiert, dass sie je nach Betriebssystem entweder die x86- oder x64-Version lädt, wenn ich das richtig verstehe.
Für den Code zum Laden des bin-Verzeichnisses von NSASS: https://github.com/TBAPI-0KA/NSass/blob/master/NSass.Core/AssemblyResolver.cs
Ich habe versucht, die DLL-Dateien (sowohl X64 als auch x86) in den bin-Ordner zu verschieben, aber ich erhalte denselben Fehler, wenn ich im Ereignisprotokoll nachschaue, auch wenn fuslogvw sagt, dass alles in Ordnung ist.
Hat jemand Tipps, was ich als nächsten Schritt tun kann, um dieses Problem zu lösen?
Bearbeiten: Habe versucht, AppDomain.CurrentDomain.SetupInformation.PrivateBinPath zu protokollieren, und es zeigt auf den bin-Ordner, wie es sollte, und AppDomain.CurrentDomain.BaseDirectory zeigt ebenfalls auf den richtigen Ordner. Bin mir nicht sicher, ob sich etwas am aktuellen Domänen-Setup ändert vom Application_Start, wo ich protokolliere, bis zur Assembly Load der NSASS-Dateien.
Auch erwähnenswert: Dies ist eine EPiServer-Webseite, also weiß nicht, ob EPiServer etwas ändert. Aber wenn ja, sollten nicht auch in der Entwicklungsumgebung Probleme auftreten?