Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DLL上嵌入的Xaml页面_C#_Xaml_Windows 8_Windows Runtime_Winrt Xaml - Fatal编程技术网

C# DLL上嵌入的Xaml页面

C# DLL上嵌入的Xaml页面,c#,xaml,windows-8,windows-runtime,winrt-xaml,C#,Xaml,Windows 8,Windows Runtime,Winrt Xaml,我正在用新的Metro设计(WinRT)开发一些UI组件,以便将它们提供给第三方公司。 我们在部署控件包时遇到一些问题。 当它们引用由新项目上的控件生成的.dll文件时,它们可以访问所有对象并实例化它们,但在编译时,会出现以下类型的错误: “负载文件”…\bin\Debug\Charts\Line\Line.xaml“不存在。”。(如果我们提供/bin.dll) 或 XamlParseException位于Windows.UI.Xaml.Application.LoadComponent(对象组

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

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

XamlParseException位于Windows.UI.Xaml.Application.LoadComponent(对象组件、Uri resourceLocator、ComponentResourceLocation ComponentResourceLocation)
(如果我们使用/obj文件夹中的.dll)

我们知道“解决这个问题的方法是向客户部署/提供xaml”文件以及.dll,但我们确实希望避免显示xaml代码

提前谢谢


NG

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

您可能想阅读Tim Heuer关于构建可部署控件的文章。他提到了两种共享控件的方法——使用VS Extensions SDK将控件安装到VisualStudio中,或者作为NuGet包共享NuGet包。这样,当您第一次查看共享的组件时,这些文件将不可见,尽管它们将包含在项目文件夹中,因此如果有人看得更近,他们将看到您的XAML

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

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