繁体   English   中英

“目标框架”如何影响将Machine.config和GAC与Visual Studio一起使用的方式?

[英]How does the “Target framework” affect the way the machine.config and GAC are used with Visual Studio?

我正在尝试了解如何使用项目的Target框架以及它如何影响加载程序集。 这是问题。

在Visual Studio 2015社区中,我的默认目标框架是.NET 4.6.1。 在此设置下,我使用NuGet将Npgsql 3.0.7安装为本地后端PostgreSQL数据库的驱动程序。 使用时

DbProviderFactories.GetFactory(ProviderName)

VS报告找不到该提供程序。 (这是在machine.config和GAC中安装了Npgsql 3.0.7之后的。)

在对此进行研究( DbProviderFactories Demystified )时,声明

DbProviderFactories只需调用Type.GetType来加载Assembly并创建Type的实例。

这导致我对Npgsql 3.0.7进行了更多研究。 NuGet安装程序集后,将其放置在

C:... \\ packages \\ Npgsql.3.0.7 \\ lib \\ net45 \\ Npgsql.dll

以“ net45”作为.NET 4.5,我将项目的目标框架更改为.NET 4.5.2。 重建后,所有程序运行正常,没有警告或错误。

那么“目标框架”如何影响machine.config和GAC的使用方式?

感谢您的解释(或参考)。

注意:解决方案资源管理器中永远不会警告Npgsql程序集与.NET 4.6.1不兼容。

编译与运行时执行是分开的。 选择目标框架时,Visual Studio / MSBuild会检查目标配置文件中的参考程序集以编译项目。

在运行时,首先Windows将决定应使用哪个.NET Framework安装。 然后将是该版本的.NET Framework来决定如何使用其GAC和machine.config(和其他位)运行程序。

NuGet版本net45表示.NET Framework 4.5及更高版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM