在Visual Studio 2017中,我创建了一个针对.net 4.0(以支持Win XP上的旧应用程序)和4.6.1框架的类库。我通过使用新的.csproj格式来做到这一点,该格式允许指定多个目标框架,如下所示。
<PropertyGroup>
<TargetFrameworks>net40;net472</TargetFrameworks>
</PropertyGroup>
为两个框架构建库都可以正常工作。我得到了两个文件夹net40和net472,其中都包含用于特定目标框架的dll。
在我的解决方案中,我现在还有两个项目。一个WinForms应用程序引用了我的库,另一个WPF应用程序引用了我的库。 WinForms App应该使用我的库的net40和WPF App net472版本。
当我在WinForms应用程序中添加对库的项目引用时,它使用的是net40版本。一切都很好。
但是,当我将类库项目引用到WPF应用程序(为net472构建)时,它也使用了net40 dll。但是我希望我的WPF应用程序使用库的net472版本。
在VS2017中将多目标类库作为项目参考引用时,是否有可能选择目标框架?
更新: 当我从库中构建多目标nuget程序包并使用该程序包引用它时,一切都很好。 WPF应用程序自动使用net472和WinForms net40。