有趣的依赖问题...
VS2015.3,.NET45将Microsoft.Owin从3.0.0更新到3.0.1(跟踪此更新是问题-想要安装https://www.nuget.org/packages/IdentityServer3.AccessTokenValidation/)
但要发布到Azure网站:(我要从VS中直接删除Azure上目标位置上的其他文件)。重新启动并从azure网站服务器上删除了所有文件。
web.config翻译看起来还可以
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
编辑 Bruce Chen的答案将我引向Kudu的方向(Azure-开发工具,高级工具)
我下载了Owin dll,并且版本错误,即3.0.0
要修复,我从解决方案中清除了所有程序包工件
git clean -xfd(请小心)
然后重建
小智 8
我也浪费了几个小时,因为 nuget 安装的参考版本为 3.0.0,尽管 nuget 包被标记为 3.0.1
使旧版本比新版本更新解决了我的问题:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
</dependentAssembly>Run Code Online (Sandbox Code Playgroud)
*编辑:我认为(但不确定)我的版本仍然是 3.0.0.0 的原因是因为 bin 文件夹被我的 repo 捕获并且 nuget 不想覆盖 dll
无法加载文件或程序集“Microsoft.Owin,Version=3.0.1.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。
一般来说,这意味着 .NET 程序集加载程序无法找到引用的特定版本的程序集。请确保可以在您的 Azure 网站中找到版本为 3.0.1.0 的程序集,并且该版本通过 KUDU 或 FTP 客户端与您的 web.config 中的定义匹配。
正如您所说,它在 IIS Express 上本地运行,请尝试通过 KUDU 或 FTP 客户端手动将您的网站内容部署到 Azure,看看它是否有效。
| 归档时间: |
|
| 查看次数: |
26331 次 |
| 最近记录: |