【发布时间】:2021-12-30 11:33:01
【问题描述】:
我根据一个已有数年历史的示例项目创建了一个 dll。 我正在构建 dll,并且可以在我的计算机上成功注册此 dll,该计算机同时安装了 2010 和 2015-2019 C++ 可再发行组件。 当我尝试在仅安装 2015-2019 c++ 可再发行组件的计算机上安装相同的 dll 时,注册失败。在该机器上安装 2010 c++ 可再发行组件后,dll 安装成功。 我希望能够在仅安装 2015-2019 可再发行组件的计算机上注册此 dll。我认为这与我在 Visual Studio 2019 中构建的项目的配置有关。我已经浏览了所有属性,但没有任何突出之处。非常感谢有人指出我正确的方向!
更新:我所指的示例随 Windows sdk 一起提供,可以在此处找到:C:\Users\user\Source\Repos\Windows-classic-samples\Samples\Win7Samples\winui\shell\appshellintegration\RecipeThumbnailProvider 当我在 Visual Studio 2019 中打开它时,它进行了某种更新,但似乎没有影响它所依赖的可再发行组件。
【问题讨论】:
-
它依赖于用于构建程序的
Platform Toolset。见Determining Which DLLs to Redistribute -
@RichardCritten 我读过这篇文章,但我很困惑,因为它说:“我们只支持使用与您的工具集版本相同或更新的可再发行包。”这是否意味着如果我的 dll 想要 2010 可再发行组件,它应该与 2015-2019 版本一起使用,因为它是较新的?构建时我可以在哪里设置我的“平台工具集”?
-
"...构建时在哪里可以设置我的“平台工具集”?..." 项目(不是解决方案)属性 > 配置属性 > 常规 > 平台工具集
-
@RichardCritten 谢谢,它正在显示“Visual Studio 2019 (v142)”,这似乎是我想要的......关于为什么它似乎需要安装 2010 可再发行组件的任何其他想法?
-
如果有的话,您是否有任何预构建的组件,请使用 Dependency Walker(注意它有一段时间没有更新,并且可能会给出令人困惑的输出)来检查他们需要什么。
标签: c++ visual-studio visual-c++ visual-studio-2019 redistributable