目前我正在开发一个 Xamarin 应用程序,它使用 .Net-Standard 代码共享策略。虽然我可以在 android 上成功构建和运行,但我在 UWP 项目上遇到了一些问题。
当我尝试构建项目时,我收到以下错误消息:
无法复制文件“obj\x86\Debug\myapp.UWP.xr.xml”,因为找不到它。
无法复制文件“obj\x86\Debug\MainPage.xbf”,因为找不到它。
无法复制文件“obj\x86\Debug\App.xbf”,因为找不到它。
无法解析程序集或 Windows 元数据文件“类型 Universe 无法解析程序集:myapp.Basic,版本=1.0.0.0,Culture=neutral,PublicKeyToken=null。”
当我在寻找这些错误消息时,我在 stackoverflow 上找到了这个线程:
该线程建议在包含 XAML 代码的项目中启用“生成库布局”,这看起来非常有希望,因为 myapp.Basic 项目包含一些 XAML 代码。不幸的是,这个选项在 .Net 标准项目中完全没有。
有人可以帮我解决这个问题吗?
我为Windows通用平台(Win 10 UWP)创建了一个类库。
该库中包含一些UserControls。
当我从该库中将dll添加到Win 10 UWP应用程序并使用UserControls时,它给出了XamlParseException,如我在发布的另一个问题中所述
但是,当我引用整个项目时,也没有例外,我可以使用UserControl。据说发生这种情况是因为有些xbf文件在我仅引用dll文件时没有添加到Win 10应用程序项目中。
在某个项目中,我需要将xbf文件手动添加到Win 10应用程序项目中,我不能引用整个项目,只能引用dll并添加所需的文件。
我尝试在Visual Studio项目中创建一个文件夹并添加xbf文件,还尝试创建具有不同名称的文件夹,然后通过Windows资源管理器将xbf文件复制到“ bin”目录中。但是没有成功。
因此,如何手动将xbf文件添加到Windows 10 UWP项目?
更新1:-XAML和代码供参考
public sealed partial class CustomPopupControl : UserControl
{
internal CustomPopupControl()
{
this.InitializeComponent(); //-------CRASHES HERE-------
}
internal CustomPopupControl() : base()
{
Debug.WriteLine("CustomPopupControl");
//
//do some stuff
//
//
}
private void OnPopupLoaded(object sender, RoutedEventArgs e)
{
this.Popup_Container.HorizontalOffset = (Window.Current.Bounds.Width - Grid_Child.ActualWidth) / 2;
this.Popup_Container.VerticalOffset = (Window.Current.Bounds.Height - Grid_Child.ActualHeight) / 2;
}
internal void OpenPopup()
{
Debug.WriteLine("OpenPopup");
Popup_Container.IsOpen = true;
var currentFrame …Run Code Online (Sandbox Code Playgroud) c# windows-8 windows-store-apps win-universal-app windows-10
我们有一个使用Template 10的UWP应用。资源在同一解决方案的UWP类库中。当我们运行应用程序时,我们得到错误
{Windows.UI.Xaml.Markup.XamlParseException:无法从“ ms-resource:/// Files / Styles \ ButtonStyle.xaml”中找到资源。
在App.xaml中,我们有
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles\Custom.xaml" />
<ResourceDictionary Source="Styles\ButtonStyle.xaml"/>
<ResourceDictionary Source="Styles\ListsStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
Run Code Online (Sandbox Code Playgroud)
我们遵循了
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ms-appx:///Styles/Custom.xaml" />
<ResourceDictionary Source="ms-appx:///Styles/ButtonStyle.xaml"/>
<ResourceDictionary Source="ms-appx:///Styles/ListsStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
Run Code Online (Sandbox Code Playgroud)
那么错误是
{Windows.UI.Xaml.Markup.XamlParseException:无法分配给属性“ Windows.UI.Xaml.ResourceDictionary.Source”,因为无法将类型“ Windows.Foundation.String”分配给该类型...
我们还在单独的库中的ResourceDictionary中尝试了该解决方案
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/LibraryName;component/Styles/Custom.xaml" />
<ResourceDictionary Source="pack://application:,,,/LibraryName;component/Styles/ButtonStyle.xaml"/>
<ResourceDictionary Source="pack://application:,,,/LibraryName;component/Styles/ListsStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
Run Code Online (Sandbox Code Playgroud)
那么错误是
{Windows.UI.Xaml.Markup.XamlParseException:无法从pack:// application:,, / LibraryName; component / Styles / Custom.xaml'找到资源
我们如何在UWP类库中引用ResourceDictionary?