我们正在使用 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 的动态方式是根据操作系统加载 x86 或 x64。
对于 NSASS 的 bin 加载代码: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 也指向正确的文件夹。不确定是否有任何东西从我登录的 Application_Start 更改 CurrentDomain,直到 NSASS 文件的程序集加载。
也值得注意。这是一个 EPiServer 网络,所以不确定 EPiServer 是否有任何改变。但如果是这样,开发环境中的问题也不应该是这样吗?