5

NSASS を使用して Sass ファイルを css にコンパイルしています ( https://github.com/TBAPI-0KA/NSass )。NSASS がセットアップされ、開発環境でうまく機能しています。しかし、テストサーバーにデプロイしようとすると、NSASS を起動して実行することができません。

私たちは取得し続けます

Exception information: 
Exception type: FileNotFoundException 
Exception message: Could not load file or assembly 'NSass.Wrapper.x64.dll' or one of its dependencies. The specified module could not be found.
   at NSass.SassCompiler..ctor()
   at NSass.SassHandler..ctor()

問題は、NSASS がこれらの dll をロードするために何らかの動的な方法を使用していることです。これは機能していないようです。dll は \bin\NSass.Wrapper にありますが、fuslogvw は bin ディレクトリのみを検索しようとしているとログに記録しています。この dll を動的にロードする方法は、私の理解が正しければ、OS に応じて x86 または x64 をロードするように作られています。

NSASS のビン読み込みコード: https://github.com/TBAPI-0KA/NSass/blob/master/NSass.Core/AssemblyResolver.cs

dll ファイル (X64 と x86 の両方) を bin フォルダーに移動しようとしましたが、fuslogvw がすべて問題ないと言っている場合でも、イベント ビューアーで同じエラーが表示されます。

これを解決するための次のステップとして、私ができることについてのヒントはありますか?

編集: AppDomain.CurrentDomain.SetupInformation.PrivateBinPath をログに記録しようとしましたが、必要に応じて bin フォルダーを指し、AppDomain.CurrentDomain.BaseDirectory も正しいフォルダーを指しています。NSASS ファイルの Assembly Load までログに記録する Application_Start から CurrentDomain が変更されるかどうかはわかりません。

また、注目に値します。これは EPiServer Web であるため、EPiServer が何かを変更するかどうかはわかりません。でもそれだとDev環境にも問題があるのではないでしょうか?

4

2 に答える 2

6

私はついに問題を見つけました!

DependencyWalker を使用して NSASS の dll を分析した後、サーバーに正しいバージョンの C++ Redistriburable がないことがわかりました。

したがって、インストール後はすべて正常に動作します。

これが同じ問題を抱えている他の人々に役立つことを願っています。

于 2014-04-28T07:20:50.830 に答える
0

同じ問題がありましたが、修正は2つのことになりました.

  1. Visual Studio 2013 用の Visual C++ 再頒布可能パッケージをサーバーにインストールします。 ここからダウンロードできます

  2. nugetを使用してコンパイラを libsass-net に変更すると、NSass ( github )に非常に似ているようです。

于 2014-12-03T07:33:08.677 に答える