间接依赖 - .NET2.0 - WMP.dll

3
安装Visual Studio 2017 RC后,我有些代码无法编译。经过筛选,问题出在WMP和.NET Framework 2上(Framework 4下可以工作)。最基本的测试设置为两个项目:
第一个项目:
- Windows窗体应用 - .NET Framework 2.0 - 命名空间WMPClient - 引用了wmp.dll(尝试过system32和syswow64) - 在Form1.cs中添加了Windows Media Player 第二个项目:
- 类库(.NET Framework) - .NET Framework 2.0 - 命名空间WMPLib - 引用了WMPClient
这两个项目都可以构建。
但是,在Class1.cs(第二个项目)中添加using WMPClient;之后,构建失败:
13个错误行,像System.Windows.Forms, mscorlib, System 警告 MSB3258: 主引用"C:\WMPClient\bin\Debug\WMPClient.exe"无法解析,因为它对.NET Framework程序集"System.Windows.Forms,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"具有较高版本"4.0.0.0" ,而当前目标框架中的版本为"2.0.0.0"。
1个错误行,如下所示: error CS0246: 找不到类型或命名空间名称"WMPClient"(是否缺少using指令或程序集引用?) 相同的代码在安装VS2017之前可以在VS2013下工作。

是否有一种设置 System.Windows.Form 版本 2.0.0.0 的特定目标的方法? - Johnny S
每个系统引用的属性都显示“运行时版本= v2.0.50727”,这适用于两个项目。 - Johnny S
1个回答

1

它说你的"WMPClient.exe"拥有更高版本的.NET框架4.0。按照原则,在低版本的.NET项目中无法添加更高版本的库或命名空间。因此,要么使用2.0构建"WMPClient.exe",要么将您的表单项目升级到4.0。


两个项目在属性/应用程序中都设置为Framework 2.0csproj: <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> - Johnny S
有什么进展吗?我也遇到了同样的问题,从VS2017迁移到VS2019(在新机器上)。 - Terry
在 .NET framework v3.5 上它不能工作。我已经将我的应用程序升级到项目偏好设置中的 .NET framework v4.0,现在它可以工作了。 - Григорий

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接