首页 > 解决方案 > 如何在 .NET Standard 2.0 中使用 System.Windows.Forms.SendKeys

问题描述

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

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

标签: c#.netwinforms.net-standard-2.0

解决方案


如果以某种方式必须(而且很难到达这里),请使用反射来定位类System.Windows.Forms.SendKeys并调用调用。

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

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

调用者选择正确的 dll 并且它可以工作。

现在是困难的部分;您仍然可以在netstandard2.0没有实现的情况下进行参考 dll 定位,并且派生包仍然可以解析;但最终的可执行文件必须是这两个(或更新的)之一,否则它将无法运行。


推荐阅读