繁体   English   中英

适用于UWP和Classic桌面的C ++通用Windows DLL

[英]C++ Universal Windows DLL for both UWP and Classic Desktop

Universal Windows dll实际上是通用的,还是只适用于UWP?

我正在使用所有默认值构建本机C ++ DLL,但是当我从Classic Desktop应用程序(它是单元测试)引用它时,我得到此异常:

此操作仅在app容器的上下文中有效。

当然,“通用Windows”中的“通用”可能适用于那些很酷的人:),但我真的不想为Windows 10构建两个独立的dll,只是因为。

我在构建NuGets for .NET Core时也注意到了这一点,我将我的本机库粘贴在win10文件夹中。 我还有一个针对Windows 7的特殊版本,因此进入了win7文件夹。 一切看起来都不错,直到运行时,甚至.NET Core都无法加载这个通用dll。

适用于UWP的C ++通用Windows吗? 有没有办法为.NET Core,UWP和Classic Desktop使用单个dll? 要设置的任何特殊标志?

如果没有办法拥有真正的通用DLL,那么如何区分Windows 10 dll是用于UWP还是经典桌面?

我与NuGet团队进行了讨论,他们有一个解决方案:

#2782添加了对runtimes/{rid}/nativeassets/{tfm}/{any?}

在您的nuspec中设置3.5.0的最小客户端版本,以确保消费者拥有正确的客户端版本来获取此nupkg路径。

https://github.com/NuGet/Home/issues/5042

所以在我的.nuspec的情况下:

<file src="Managed.dll" target="lib\netstandard1.3" />
<file src="Native-Win7.dll" target="runtimes\win7-x64\native" />
<file src="Native-Win10.dll" target="runtimes\win10-x64\native" />
<file src="Native-Uap10.dll" target="runtimes\win10-x64\nativeassets\uap10.0" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM