问题:
我们的应用程序是.NET 5 Windows桌面应用程序。许可功能要求应用程序使用来自NuGet的NuGet组件从系统处理器ID、MAC地址和BIOS序列号创建唯一的设备ID。
在从Visual调试器中测试它时,所有这些都非常有效。但是,当将System.Management.dll添加到应用程序安装程序(InstallShield安装程序)时,我自然选择了应用程序的构建目标文件夹中的System.Management.dll版本。事实证明,在该文件夹中结束的DLL版本是一个不受操作的版本,它抛出不支持的异常,说"System.Management仅支持Windows“。
发布于 2022-04-16 02:59:06
解决方案:
我在build TargetFolder\runtimes\win\lib\netcoreappX.x文件夹中找到了正确的System.Management.dll版本。在我的例子中,由于我使用的是System.Management Version6.0,所以它位于"netcoreapp3.1“文件夹中。
结论
在很多情况下,微软没有做正确的事情。在这种情况下,我的应用程序是一个.NET 5 Windows应用程序,所以我们都认为msbuild可以找到正确的方法。事实并非如此。在这种情况下,我至少希望.NET基金会能够提供有关这方面的信息。现在你们都知道了!
干杯
https://stackoverflow.com/questions/71889913
复制相似问题