问题是无法加载文件或程序集'Newtonsoft.Json,Version = 9.0.0.0

时间:2018-01-19 05:21:56

标签: c# asp.net-mvc stripe-payments stripe.net

这里我试图在.net mvc中实现支付网关的条带 我的查看代码如下。

@{
    ViewBag.Title = "Index";
}
<link type="text/css" rel="stylesheet" href="https://checkout.stripe.com/v3/checkout/button-qpwW2WfkB0oGWVWIASjIOQ.css">
<script src="/Scripts/jquery-1.7.1.js"></script>
<form action="/Home/Charge" method="POST">
<article>
<label>Amount: $5.00</label>
</article>
<script src="//checkout.stripe.com/v2/checkout.js"
class="stripe-button"
data-key="My Public key"
data-locale="auto"
data-description="Sample Charge"
data-amount="500">
</script>
</form>

控制器中的代码如下所示。

 public ActionResult Charge(string stripeEmail, string stripeToken)
        {
            var customers = new StripeCustomerService();
            var charges = new StripeChargeService();

            var customer = customers.Create(new StripeCustomerCreateOptions
            {
                Email = stripeEmail,
                SourceToken = stripeToken
            });

            var charge = charges.Create(new StripeChargeCreateOptions
            {
                Amount = 500,//charge in cents
                Description = "Sample Charge",
                Currency = "usd",
                CustomerId = customer.Id
            });

            return View();
        }

我在 Global.asax.cs 文件中保存的秘密密钥

StripeConfiguration.SetApiKey("My Sescrete key");

完成所有这一部分后,我运行了我的申请。 什么时候到达

var customer = customers.Create(new StripeCustomerCreateOptions
            {
                Email = stripeEmail,
                SourceToken = stripeToken
            });

这部分,然后我在这里得到错误

无法加载文件或程序集“Newtonsoft.Json,Version = 9.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed”或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)

enter image description here

当我安装带有9.0.1 版本的 Newtonsoft.Json时,它再次开始给出相同的问题,但对于版本= 4.5.0.0 ,它出现在非常在下面一行的gloabal.asax.cs文件中加注。

WebApiConfig.Register(GlobalConfiguration.Configuration);

3 个答案:

答案 0 :(得分:0)

如果您的解决方案中有多个项目,请在所有项目中更新Newtonsoft.Json。您的解决方案中的多个项目可能包含Newtonsoft.Json,但有些项目的版本不同。

答案 1 :(得分:0)

最新反应,但可能会对某人有所帮助。如果碰巧您的应用程序部署了更高版本的Netwonsoft,请说v.11.0.2,并且您的应用程序抱怨v.9.0,请确保您在app.config中配置了绑定重定向,例如:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>

。在将应用程序部署到生产环境时,请确保配置文件位于dll或exe旁边。

答案 2 :(得分:-1)

通过删除代码行解决了问题

WebApiConfig.Register(GlobalConfiguration.Configuration);

来自 Global.asax.cs 文件