Visual Studio 从% 4迁移后的运行时错误,6.1至4.7.2,NET框架

zujrkrfu  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(163)

我有一个运行得很好的MVC Web应用程序。NET框架4.6.1.我需要将目标框架更改为4。7.1或更高版本,所以我选择了4。7.2.
我只是简单地改变了项目属性下的目标框架下拉列表,并更新了web。配置如下。<compilation targetFramework="4.7.2" debug="true" />
然后我在软件包管理器控制台中运行 Update-Package -Reinstall
在这样做之后,我现在得到以下运行时错误:

  • System.IO.FileNotFoundException HResult= 0x 80070002消息=无法加载文件或程序集“System.Runtime.InteropServices.运行时间信息,版本=4。0.2.0,Culture=neutral,PublicKeyToken= b 03 f5 f7 f11 d50 a3 a '或其依赖项之一。系统找不到指定的文件。Source= StackTrace:*

此错误在下面的 var client 行中抛出

public static string getConnectionString(string secretName)
{  
    string kvURL = "https://blah_blah.vault.azure.net/";

    var client = new SecretClient(new Uri(kvURL), new DefaultAzureCredential());
    KeyVaultSecret cs = client.GetSecret(secretName);

    return cs.Value;
}

我已经验证了引用下的路径确实指向实际的 * 系统。Runtime.InteropServices.运行时间信息。dll* 文件。
在我尝试了所有这些之后,我最终求助于从命令行运行 devenv /ResetSkipPkgs。没有变化。
有人能告诉我可能出了什么问题吗?是否有额外的或不同的步骤,我应该采取改变到4。7.2?

zaq34kh6

zaq34kh61#

_System.IO.FileNotFoundException HResult=0x80070002消息无法加载文件或assemblySystem。Runtime.InteropServices.运行时间信息,版本=4。0.2.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a'或其依赖项之一。系统找不到指定的文件。
您的错误清楚地表明软件包版本存在冲突问题。

  • 正如你所提到的,我已经改变了项目属性下的目标框架,并更新了Web.config
  • 确保目标版本反映在.csproj文件中。
  • 检查您是否具有以下设置。
    单位:Web.config
<dependentAssembly>
  <assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>

单位:packages.config:

<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net472" />

.csproj文件中:

<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
  <HintPath>packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
  <Private>True</Private>
  <Private>True</Private>
</Reference>
  • 我的.csproj在运行Update-Package -Reinstall后也得到了更新。

获取密码:

public async Task<ActionResult> Index()
{         
    var kvURL = "https://mykeyvault24Apr.vault.azure.net/";
    var credential = new DefaultAzureCredential();
    var client = new SecretClient(new Uri(kvURL), credential);
    var cs = await client.GetSecretAsync("Secret24April");

    ViewBag.cs = cs.Value.Value.ToString();
    return View();
}

迁移4的输出。7.2版本:

相关问题