我有一个非常简单的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应用程序崩溃的任何想法?
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