1

我有一个名为 的库foo,它是用 C++/CX 编写的。我选择了一个 Windows 运行时组件,因为我希望它被投射到 C#、C++ 和 JavaScript 中。此外,我希望能够分发该库,并且我不想要求/允许消费者在与他们的项目相同的解决方案中加载我的项目以及源文件。

MSDN 上的说明仅演示如何将 Windows 运行时组件项目包含在使用 C# 项目的解决方案中。我知道有一种方法可以只分发二进制文件,但我不知道如何。

这个问题已经被问了一千次,但答案总是有两个项目在同一个解决方案中,不完整或解决方法。

我在 Windows 8.1 上使用 Visual Studio 2013.4。

4

2 回答 2

3

一种方法是创建组件的 VSIX 包。请参阅演练:使用 C++ 创建 SDK,它准确显示了如何使用 C# 项目使用的 WinRT 组件执行此操作。

于 2015-02-24T16:28:43.717 回答
0

我研究并找到了答案......它没有很好地记录,它不直观,但是当您看到 Windows 运行时组件的工作情况时,这是值得的。

编译 C++/CX 库:

Debug确保为and Release、 in Win32ARMx86的所有排列编译库x64

C#使用说明:

右键单击解决方案资源管理器中的引用,然后添加对 Microsoft Visual C++ 运行时包 v12.0 的引用。然后添加对您使用项目的适当配置(即Debug/ ARM)创建的二进制文件的引用。这一步很棘手,因为文件过滤器会提示您输入.dll,但您需要将过滤器设置为*.*并选择.winmd文件。然后你卸载项目,找到<Reference>你刚刚添加的库的标签。<Reference>将在其<HintPath>下方有一个标签,在<Reference>您的下方还需要添加<IsWinMDFile>true</IsWinMDFile>一个<Implementation>标签对,该标签对加载了.dll与文件位于同一文件夹中的名称.winmd

有关更详细的说明和信息,我强烈建议您访问Mike Taulty 的博客

于 2015-02-24T06:47:09.867 回答