如何使用WPF表单构建库

40

是否可能构建一个同时包含 WPF 表单的 Class Library dll? 当我尝试构建一个时,会出现以下错误:

错误 1:库项目文件不能指定 ApplicationDefinition 元素。
错误 2:项目文件包含无效的属性值。

如果我将项目设置为 Windows 应用程序,则可以编译和运行。有没有办法绕过这个问题?我正在使用 VS2010 和 C# .NET 4.0,如果这对你们有任何兴趣,请告诉我。

谢谢

6个回答

45

在创建/添加新项目到你的解决方案时,选择 WPF自定义控件库WPF用户控件库


实际上这更像是一个混合库。它包含常规类和功能,以及一些表单。这样可以吗? - Jens
9
在我已经创建了一个普通的类库之后,有没有任何方法可以将其转化为WPF自定义控件库或WPF用户控件库?我查看了其属性,但在那里无法选择这两个选项。 - Jens
10
是的,为了消除这个错误,请在解决方案资源管理器中选择App.xaml并删除它。 - decyclone
5
我已经有一个包含多个项目的解决方案。我将WPF表单添加到其中一个项目,但该项目没有App.xaml文件。 - Jens
29
你的项目中一定有一个文件的“Build Action”设置为“ApplicationDefinition”。你需要删除该文件或更改其“Build Action”设置。 - decyclone
1
根据点赞数,@deycyclone,“构建操作”对某些人有效。但对我来说并非如此——毕竟它与 OP 中的错误#1 相矛盾。Mikl X 的建议对我很管用。 - Adrian Ratnapala

30
将您的的构建操作从更改为。

2
这对我来说是个问题。如果我的项目中的任何 .xaml 文件都是用于构建操作的 ApplicationDefinition,则会出现此错误。 - baueric
2
默认情况下,App.xaml 的构建操作将设置为 ApplicationDefinition。 - DLeh
App.xaml 必须从 ApplicationDefinition 更改为 Page,然后问题就解决了 +1。 - yu yang Jian

11
将 WPF 项目中的 App.xaml 和 App.xaml.cs 文件删除,然后您就可以使用类库输出类型运行该项目。

在创建了一个 Wix 自定义 BA 后,将 WPF 项目从应用程序更改为类库后遇到了这个问题。删除了 App.xaml.* 文件,然后它立即编译成功! - Lynn Crumbling

8

当我们将图片复制粘贴到类库项目中时,也会出现这种情况。

将该图像的“生成操作”属性更改为“资源”即可解决问题。


2

1

扩展@2493490的答案。

右键单击app.xaml文件并将其从项目中排除。 在项目属性中更改项目输出类型为类库。 单击运行图标,解决方案将成功构建但不会运行/执行任何代码。将显示一个错误消息来解释此情况。


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