在生产环境中设置NSASS?

Joh*_*erg 5 dll assemblies sass fuslogvw

我们正在使用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()
Run Code Online (Sandbox Code Playgroud)

问题在于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是否进行了任何更改。但是,如果是这样的话,那么在开发环境中也不会出现问题吗?

Joh*_*erg 6

我终于找到了问题!

使用DependencyWalker分析NSASS的dll后,我发现服务器没有正确版本的C ++ Redistriburable。

因此,安装后一切正常!

希望这对其他人也有帮助。

  • 作品!对我来说,它需要** [2012年版本](http://www.microsoft.com/zh-cn/download/details.aspx?id=30679)**,所以我建议每个人都从尝试开始。如果仍然无法使用,请尝试安装所有其他版本,例如2010和2013 **,或使用免费的[DependencyWalker](http://www.dependencywalker.com/)工具**,然后打开NSass.Wrapper。该工具中的x64.dll。我从这最后的手段开始,我并不失望。谢谢@swippen :) (2认同)