如何在 .NET Standard 2.0 中使用 System.Windows.Forms.SendKeys

How to use System.Windows.Forms.SendKeys in .NET Standard 2.0

我正在 .NET Standard 2.0 中开发一个 class 库,它应该使用击键来控制其他一些应用程序。我需要在 .NET Standard 2.0 中编写库,因为我有两个客户端应用程序将使用该库,一个在 .NET Framework 4.8 中,一个在 .NET 5 中,它们都支持 System.Windows.Forms.SendKeys.

解决这个问题的正确方法是什么?

如果您必须(并且很难到达这里),请使用反射定位 class System.Windows.Forms.SendKeys 并调用调用。

最有可能的是,您最好使用 <targetframeworks>net40(或 .net48 可能无关紧要)和 netcoreapp3.0 构建。看起来像这样

     <propertygroup>
          ...
          <targetframeworks>netcoreapp3.0;net40</targetframeworks>
     </propertygroup>

调用者选择了正确的 dll,它就可以工作了。

现在是困难的部分;您仍然可以在没有实现的情况下针对 netstandard2.0 创建一个参考 dll,派生包仍然可以解析;但最终的可执行文件必须是这两个(或更新的)之一,否则它不会 运行.