我们正在使用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指向正确的文件夹。不确定是否有任何更改CurrentDomain从我记录的Application_Start,直到NSASS文件的程序集加载。
另外值得注意的是。这是一个EPiServer网站,因此不确定EPiServer是否会发生任何变化。但是,如果是这样,那么Dev环境中的问题也是如此?
答案 0 :(得分:4)
我终于找到了问题!
使用DependencyWalker分析NSASS的dll后,我发现服务器没有正确版本的C ++ Redistriburable。
所以安装完毕后一切正常!
希望这可以帮助其他人解决同样的问题。
答案 1 :(得分:0)
我们遇到了同样的问题,但修复最终成了两件事。
将Visual Studio 2013的Visual C ++ Redistributable Packages安装到我们的服务器上。 can be downloaded here