将项目类型从类库更改为WPF用户控件库。

19

在设置我的Prism WPF解决方案时,我已添加了一个项目作为类库。现在我意识到我希望它成为一个WPF用户控件库,以添加资源字典和其他与WPF相关的内容。有没有一种方法可以将我的类库项目转换为WPF用户控件库项目?(项目属性只提供在控制台、类库和Windows应用程序之间进行转换的选项!)

在设置Prism WPF解决方案时,我已将一个项目添加为类库。现在我意识到我需要将其变成WPF用户控件库,以添加资源字典和其他WPF相关内容。是否有办法将我的类库项目转换为WPF用户控件库项目?(项目属性仅提供在控制台、类库和Windows应用程序之间进行转换的选项!)
3个回答

29
你需要将以下内容添加到项目文件中:
<FileAlignment> 元素下。
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

你可能还希望在 <ItemGroup> 元素中添加以下引用:

  • <Reference Include="WindowsBase" />
  • <Reference Include="PresentationCore" />
  • <Reference Include="PresentationFramework" />
  • <Reference Include="System.Xaml" />

最后一个引用(System.Xaml)缺少结束斜杠。没有它,它将无法正确加载。 - Jordy Boom
2
非常有帮助。请注意,<ProjectTypeGuids>将与<FileAlignment>节点处于同一级别,而不是在答案中描述的其下方。 - dotNET
1
请点击这里查看其他已知的GUID。 - LuckyLikey
当我比较Class Library和WPF Class Library时,我注意到另一个区别是<MyType>元素。对于Class Library,它是Windows,而对于WPF Class Library,它是Custom。一旦我在我的Class Library项目文件中更改了这个(以及ProjectTypeGuids),该项目就会作为一个WPF Class Library加载。 - Étienne Laneville

3

通过项目属性(alt+enter)并不容易改变。您需要在编辑器(例如记事本/文本编辑器)中手动编辑 .proj 文件。

当您比较 Class Library 项目和 WPF Usercontrol Library 项目的 .proj 文件时,您将发现它们之间的区别在于节点。
您需要添加 ProjectTypeGuids、WarningLevel 和 TargetFrameworkProfile 。我理解,它们通过 ProjectTypeGuids 节点开始指定项目类型!这真的很酷!

创建一个类库项目和一个 WPF Usercontrol 库项目,并在编辑器中打开 .proj 文件进行比较,您应该能够理解我在说什么!


8
@obaylis的回答更好,因为他提到了实际的GUID。 - Per Lundberg

0

在 .Net 6 中很容易,只需在 PropertyGroup 下启用 UseWPF,并将 TargetFramework 节点更改为 'net6.0-windows'。如下所示:

<PropertyGroup>
<TargetFramework>net6.0-windows</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<UseWPF>true</UseWPF>
</PropertyGroup>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接