在.NET 4.5可执行文件中运行以.NET 2.0为目标的DLL

问题描述 投票:0回答:1

我有一个非常简单的C#库(我们称其为myApi.dll),目标是执行简单数据库插入的.NET 2.0。我的基本要求必须将其保持在.NET 2.0。当我在新的同时以.NET 2.0为目标的新VS2013应用程序中引用myApi.dll时,它的工作方式与编程的完全相同。

问题是,当我将myApi.dll移到以VS2019开发的,针对.NET 4.5的另一个项目时,它崩溃了。它崩溃并显示一条错误消息。

"Could not load file or assembly 'Microsoft.Vsa, Version=7.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified."

两个执行程序都在同一台机器上。面向.NET 2.0的应用程序可以很好地运行myApi.dll,但面向.NET 4.5的应用程序则不能。

我已查看了有用的提示,例如

我认为将我的4.5应用程序App.confg文件设置为镜像会有所帮助,但没有帮助。

<?xml version="1.0"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
    <supportedRuntime version="v2.0"/>
  </startup>
</configuration>

关于.NET 2.0为什么可以很好地调用myApi.dll而.NET 4.5应用程序崩溃的任何想法?

c# .net .net-4.5 visual-studio-2019 .net-2.0
1个回答
0
投票

VS 2019不支持.NET 2.0到3.5的废弃API,因为它不支持4.0之前的.NET Framework。对于此过时的Vsa API使用情况,请使用Visual Studio的较早版本,例如VS 2015(带有Update 3)。

另请参阅VS 2019文档:https://docs.microsoft.com/en-us/visualstudio/releases/2019/compatibility#-visual-studio-2019-support-for-net-development

Visual Studio 2019 Support for .NET Development

© www.soinside.com 2019 - 2024. All rights reserved.