gpt4 book ai didi

c# - DLL 上的嵌入式 Xaml 页面

转载 作者:太空宇宙 更新时间:2023-11-03 11:14:11 25 4
gpt4 key购买 nike

我正在使用新的 Metro Design (WinRT) 开发一些 UI 组件,以便将它们提供给第三方公司。我们在部署控件包时遇到了一些问题。当他们在一个新的Project上引用我们的控件生成的.dll文件时,他们可以访问所有的对象并实例化它们,但是在编译时,会出现以下类型的错误:

“负载文件‘...\bin\Debug\Charts\Line\Line.xaml’不存在。”。 (如果我们提供/bin .dll)

XamlParseException at Windows.UI.Xaml.Application.LoadComponent(Object component, Uri resourceLocator, ComponentResourceLocation componentResourceLocation)(如果我们使用/obj 文件夹中的 .dll)

我们知道“此问题的解决方法是部署/提供 xaml”文件以及 .dll 给我们的客户,但我们真的很想避免显示我们的 XAML 代码。

提前致谢

错误

最佳答案

XAML 文件在 Windows 8 WinRT/XAML 中是松散文件,因此如果您想使用将 XAML 和代码隐藏在一起的内置工具,则必须共享 XAML 文件。

您可能想阅读 Tim Heuer 关于构建可部署控件的文章 here .他提到了两种共享控件的方法——使用 VS Extensions SDK,它们将安装到 Visual Studio 中,或者作为 NuGet 包,您可以在其中共享 NuGet 包。这样,当您第一次查看您共享的组件时,这些文件将不可见,但它们将包含在项目文件夹中,因此如果有人仔细观察 - 他们会看到您的 XAML。

您似乎想要避免的替代方法是将 dll + xaml 文件作为要放入项目的文件共享。您需要将 xaml 文件放入与 dll(没有文件扩展名)同名的文件夹中,以便工具找到它们。只是使用这些工具的替代方法。

如果您查看从商店安装的应用程序 - 您可以看到它们附带的所有 XAML 文件。在这一点上,除了编写大量代码以某种方式将 XAML 嵌入您的二进制文件或将其替换为隐藏代码之外,实际上没有其他好的选择。

关于c# - DLL 上的嵌入式 Xaml 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13163832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com