我们正在使用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是否进行了任何更改。但是,如果是这样的话,那么在开发环境中也不会出现问题吗?
我终于找到了问题!
使用DependencyWalker分析NSASS的dll后,我发现服务器没有正确版本的C ++ Redistriburable。
因此,安装后一切正常!
希望这对其他人也有帮助。