如何将以 C++/CX 构建的 Windows 运行时组件安装到 C# 项目中?
How do you install a Windows Runtime Component built in C++/CX into a C# project?
我有一个名为 foo
的库,它是用 C++/CX 编写的。我选择了 Windows 运行时组件,因为我希望将它投射到 C#、C++ 和 JavaScript 中。此外,我希望能够分发该库,并且我不希望 require/allow 消费者在与他们的项目相同的解决方案中加载我的项目以及源文件。
MSDN 上的说明仅演示了如何将 Windows 运行时组件项目包含在使用 C# 项目的解决方案中。我知道有一种方法可以只分发二进制文件,但我不知道怎么做。
这个问题已经被问了一千遍了,但答案总是两个项目在同一个解决方案中,不完整或解决方法。
我在 Windows 8.1.
上使用 Visual Studio 2013.4
我研究并找到了答案...它没有很好地记录,也不直观,但是当您看到 Windows 运行时组件的工作情况时,这一切都是值得的。
编译C++/CX库:
确保为 Debug
和 Release
的所有排列编译库,在 Win32
、ARM
、x86
和 [=15= 中].
C#消费说明:
在解决方案资源管理器中右键单击引用,然后添加对 Microsoft Visual C++ Runtime Package v12.0 的引用。然后添加对您使用项目的适当配置创建的二进制文件的引用(即 Debug
/ARM
)。这一步很棘手,因为文件过滤器提示您输入 .dll
,但您需要将过滤器设置为 *.*
和 select .winmd
文件。然后卸载项目,找到刚刚添加的库的 <Reference>
标签。 <Reference>
下方将有一个 <HintPath>
标签,在 <Reference>
下您还需要添加 <IsWinMDFile>true</IsWinMDFile>
和一个 <Implementation>
标签对,其中加载了.dll
与 .winmd
文件位于同一文件夹中。
有关更详细的说明和信息,我强烈建议访问 Mike Taulty's Blog
一种方法是创建组件的 VSIX 包。请参阅 Walkthrough: Creating an SDK using C++,其中确切显示了如何使用 C# 项目使用的 WinRT 组件执行此操作。
我有一个名为 foo
的库,它是用 C++/CX 编写的。我选择了 Windows 运行时组件,因为我希望将它投射到 C#、C++ 和 JavaScript 中。此外,我希望能够分发该库,并且我不希望 require/allow 消费者在与他们的项目相同的解决方案中加载我的项目以及源文件。
MSDN 上的说明仅演示了如何将 Windows 运行时组件项目包含在使用 C# 项目的解决方案中。我知道有一种方法可以只分发二进制文件,但我不知道怎么做。
这个问题已经被问了一千遍了,但答案总是两个项目在同一个解决方案中,不完整或解决方法。
我在 Windows 8.1.
上使用 Visual Studio 2013.4我研究并找到了答案...它没有很好地记录,也不直观,但是当您看到 Windows 运行时组件的工作情况时,这一切都是值得的。
编译C++/CX库:
确保为 Debug
和 Release
的所有排列编译库,在 Win32
、ARM
、x86
和 [=15= 中].
C#消费说明:
在解决方案资源管理器中右键单击引用,然后添加对 Microsoft Visual C++ Runtime Package v12.0 的引用。然后添加对您使用项目的适当配置创建的二进制文件的引用(即 Debug
/ARM
)。这一步很棘手,因为文件过滤器提示您输入 .dll
,但您需要将过滤器设置为 *.*
和 select .winmd
文件。然后卸载项目,找到刚刚添加的库的 <Reference>
标签。 <Reference>
下方将有一个 <HintPath>
标签,在 <Reference>
下您还需要添加 <IsWinMDFile>true</IsWinMDFile>
和一个 <Implementation>
标签对,其中加载了.dll
与 .winmd
文件位于同一文件夹中。
有关更详细的说明和信息,我强烈建议访问 Mike Taulty's Blog
一种方法是创建组件的 VSIX 包。请参阅 Walkthrough: Creating an SDK using C++,其中确切显示了如何使用 C# 项目使用的 WinRT 组件执行此操作。