如何在 .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,派生包仍然可以解析;但最终的可执行文件必须是这两个(或更新的)之一,否则它不会 运行.
我正在 .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,派生包仍然可以解析;但最终的可执行文件必须是这两个(或更新的)之一,否则它不会 运行.