C# 运行类库

C# Run Class Library

提问人:Zeek Joseph 提问时间:7/21/2023 更新时间:7/21/2023 访问量:130

问:

我正在 Jetbrains Rider 中构建一个 C# 项目。项目完成后,我想通过构建 dll 并将 dll 添加到项目中来将其包含在另一个项目中。要生成 dll,我需要将“输出类型”设置为“类库”。

但是,这意味着我无法直接运行该项目。类库不可运行;如果你愿意,你应该做一个控制台应用程序。每次我想测试时,我都必须替换另一个项目中的dll,然后运行另一个项目。这可能看起来还不错,但问题是我的dll只在该项目的某些地方使用。

此外,由于我无法写入/读取控制台,因此无法作为控制台应用程序运行会使调试变得更加困难。

可能有一些骇人听闻的方法可以解决这个问题 - 在努力想出解决我的问题的方法时,我想到了一些骇人听闻和痛苦的方法来获得我想要的东西。但是,我正在寻找一个干净的解决方案。一个项目,相同的代码。单击“生成”时构建到类库,单击“运行”时作为控制台应用程序运行。

到目前为止,我想出的最好的折衷方案是,每当我想生成或运行时,都可以在类库和控制台应用程序输出类型之间切换。然而,这仍然是一种骇人听闻和痛苦的方式。它也容易出错,如果其他人想在我的项目上工作,除了在 README 开头发出一个丑陋的大警告之外,没有办法让他们知道。

必须有更好的方法来做到这一点。我的意思是,你应该如何测试你的类库?我愿意妥协,但似乎没有什么能阻止一个干净而简单的解决方案。右?

C# .NET 控制台应用程序 类库 jetbrains-rider

评论

4赞 JL0PD 7/21/2023
最好的解决方案是使用单元测试。编写代码,通过测试进行验证,重复。如果更改后有什么东西坏了 - 你会知道的。我推荐使用 XUnit,因为它是最流行的解决方案,并且有足够多的文档和博客文章
0赞 Jon P 7/21/2023
jetbrains.com/help/rider/Getting_Started_with_Unit_Testing.html
0赞 Zeek Joseph 7/21/2023
问题是我正在构建一个 GUI。我需要实际运行它,以便我可以看到它的外观并进行调整。
0赞 Zeek Joseph 7/21/2023
我忘了在我之前的评论中提到你,但我无法编辑它(我想这是受到我的低业力的限制),所以我会在这里提到你 - @JL0PD更新:到底是什么?我可以编辑这条评论,但不能说上一条。奇怪。
0赞 JL0PD 7/21/2023
@ZeekJoseph您可以在发布后 5 分钟内编辑评论

答:

0赞 Lee Dungx 7/21/2023 #1

这是我通常测试DLL的方式:

  1. 创建一个项目类库,生成代码。
  2. 在解决方案中,添加用于测试的新项目控制台。
  3. 在项目控制台中,添加引用 DLL 表单项目库。
  4. 从类库中编辑代码后重新生成解决方案,在控制台项目中进行测试。

评论

0赞 Zeek Joseph 7/21/2023
此解决方案有效,但它仍然是一种棘手的解决方法。首先,我必须添加一个构建事件来编译控制台应用程序运行配置中的类库,这很笨拙,仍然意味着我需要在 README 中为想要处理我的项目的人留下一个丑陋的大警告。此外,它需要两个项目,我强烈反对(也许我在心理上夸大了它有多大,但我讨厌它的想法,我确信它一定违反了软件开发的一些原则)。但感谢您的建议 - 如果我没有找到更好的东西,我会考虑它。
0赞 Zeek Joseph 7/21/2023
顺便说一句,欢迎来到 Stack Overflow!
0赞 Community 7/24/2023
您的答案可以通过额外的支持信息得到改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。