【发布时间】:2015-02-12 17:17:07
【问题描述】:
我有一个 MVC 5 Web 应用程序,我希望通过在发布时进行预编译来节省启动时间。但是,当我选择“发布期间预编译”时,出现以下错误:
Error 5082 Could not load file or assembly 'DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246'
or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040).
error ASPRUNTIME 0 0 USIS
Web.Config 对此参考有绑定重定向
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780CCD10D57B246" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
如果我没有选中此预编译选项,这将构建和部署良好,并且 Web 工作正常且没有问题。我只是无法在选中此预编译选项的情况下发布。
我真的很想让网站只在发布时编译所有视图等,而不是在现场制作站点中重新编译。我正在查看的一些文档表明这是这些功能的提议......但我没有运气。
编辑:我取得了一些成功。我意识到我故意不部署 Web.Config 文件,这样开发人员就不会意外损坏生产环境配置,但似乎预编译构建正在将文件复制到临时位置,并且没有 Web.Config 文件已部署,没有 Web.Config 文件,这意味着没有依赖项翻译。
所以,现在看来,如果我想预编译,我将不得不部署 Web.Config(我已将其构建操作从“内容”设置为“无”,现在我已设置它又回来了。)这意味着我将需要研究 Web.Config 转换等。
谢谢, 格雷格
【问题讨论】:
标签: visual-studio-2012 razor asp.net-mvc-5 precompile