.net 将XAML控件从WPF应用程序复制到类库后出现的问题

.net 将XAML控件从WPF应用程序复制到类库后出现的问题,.net,wpf,xaml,.net,Wpf,Xaml,在重构某些代码的过程中,我遇到了以下几个构建错误: 库项目文件无法指定ApplicationDefinition元素 项目文件包含无效的属性值 如何解决这些错误?必须将Xaml控件上的生成操作从ApplicationDefinition更改为Page(此属性可通过右键单击解决方案资源管理器树视图中的控件并选择属性来访问)。在项目内或其他项目中复制和粘贴文件时,VisualStudio有一个坏习惯,就是不保留相同的BuildAction属性。它通常会将生成操作更改为看似随机的值,例如,Applic

在重构某些代码的过程中,我遇到了以下几个构建错误:

库项目文件无法指定ApplicationDefinition元素

项目文件包含无效的属性值


如何解决这些错误?

必须将Xaml控件上的生成操作从ApplicationDefinition更改为Page(此属性可通过右键单击解决方案资源管理器树视图中的控件并选择属性来访问)。

在项目内或其他项目中复制和粘贴文件时,VisualStudio有一个坏习惯,就是不保留相同的BuildAction属性。它通常会将生成操作更改为看似随机的值,例如,ApplicationDefinition,这会导致生成错误


选中(在Visual Studio属性窗口中,在解决方案资源管理器中选择文件)每个.xaml文件都有一个BuildAction属性Page,代码文件有一个BuildAction属性Compile

即使构建操作设置正确,您也可能会看到这一点。例如,如果您将项目作为应用程序启动,然后将其切换为类库。在这种情况下,您还必须记住删除App.xaml(以及相应的App.cs)。

这也是我们将图像/xaml文件复制粘贴到类库项目的时候


2年后,将该图像的Build Action属性更改为resources,我带着同样的问题来搜索,但仅能使用上面的注释排除其他选项,并最终找到我的答案,当时我注意到两个项目在单个解决方案中都有相同名称的.xaml文件


抽象例子 1个解决方案,包含2个项目:PRINTNOTESPROJ和MAKENOTESPROJ

在开发过程中,我在MAKENOTESPROJ中使用了一个XAML窗口,它实际上应该是版本可执行文件中PRINTNOTESPROJ的一部分

在切换到Build->Release时,我只需单击“PrintWindow.XAML”(在MAKENOTESPROJ&with child PrintWindow.XAML.cs中)并将其拖到我的PRINTNOTESPROJ上

*这是关键。我忘记了这样做只会将相关文件复制到新项目中[至少在VS2010中]。从这一点开始,我收到了您的错误,直到我从原始项目MAKENOTESPROJ中删除了“PrintWindow.xaml”


我希望这是有意义的。。。请评论与问题

奇怪-我将我的XAML文件拆分为另外两个DLL。我的所有页面都标记为AppDef,我的App.xaml标记为Page:)感谢这篇文章,他们需要修复IDE,或者至少改进这篇文章中的错误消息(说明原因)注意,这不是针对.xaml文件的,我在.ps文件(编译像素着色器)中也遇到了同样的问题,简而言之…我已经有过很多次这个问题,从来没有想过它是构建操作丢失的,所以我总是竭尽全力来解决这个问题…谢谢你,你将为我节省大量的时间和挫折,现在很好地抓住了。很高兴上面的评论/答案至少能帮上一点忙。加上一个。或者只是将其重命名以备以后可能使用。NETCore仍然存在问题(2020年6月10日)。我刚刚将App.xaml文件重命名为它,然后“poof”它就可以正常工作了。