从另一个项目启动一个项目

本文关键字:项目 一个 另一个 启动 | 更新日期: 2023-09-27 18:32:02

我正在尝试向用户提供可以在本地运行的 WPF 应用程序。

我目前有一个 WebAPI 项目,它充当 API 来正常修改数据库中的数据。这完全按预期工作。

有一个类库,我编写了一些内部类,这些类是运行我将提供给用户的 WPF 项目所必需的 - 引用了这个类包。

我想创建这个类库,以便提供给它们的 WPF 项目具有最少的可编辑代码,它们可能会更改和破坏应用程序。这一切都很好,设置好了。

我创建的 WPF 项目为用户提供了一个用户界面,用于查看和修改本地数据库(随项目一起提供)中的数据。向用户提供此项目的目的是让他们可以在项目中修改或创建新类,这些类可用于扩展我们的解决方案。

我已经设置了

本地数据库、WPF 项目和类库,并按预期工作,但是,我想包含 WebAPI 项目,以便当他们在本地运行 WPF 应用程序时,WebAPI 的实例也在后台本地运行 - 在 .NET 本地 Web 服务器上,就像我在 WebAPI 项目中按运行一样。

但是,这样做的问题是,我宁愿不只是给他们整个 WebAPI 项目来在 WPF 解决方案中加载和运行自己,而是希望 WebAPI 的实例在 WPF 应用程序启动时刚开始,以便他们可以通过 WPF 接口或通过从另一个源向本地运行的 API 发送请求来操作数据库数据。

是否可以

在 WPF 应用程序启动时启动 WebAPI 实例(就像我在 WebAPI 项目中按 F5 一样),而无需在 WPF 解决方案中包含 WebAPI 项目?

我想简单地在 WPF 项目中包含一个 WebApi 的 DLL,并在 WPF 应用程序启动时在本地 .NET Web 服务器中启动它的实例。这可能吗?您可以从引用或包含所述 DLL 的另一个独立项目将构建的 DLL 启动到本地 Web 服务器中吗?

我正在研究卡西尼号和其他一些选项,例如将其转换为 EXE,但我认为它们比我需要的要复杂得多,如果有一种更简单的方法,我不想开始改造代码我还没有偶然发现在线。

从另一个项目启动一个项目

您可以向他们提供已发布的 WebAPI 文件,并让他们在其本地 IIS 中设置实例,然后让 WPF 项目引用该本地实例。但是,这只有在用户数量相对较少的情况下才可行。

对于其他

任何想知道如何执行此操作的人,使用 editas idea 将已发布的文件放入一个文件夹中,该文件夹将包含在提供给用户的包中,并在 WPF 应用程序启动调用引用的类库中以使用我编写的方法初始化 API:InitialiseAPI()

此方法的工作原理是调用 EXE,该 EXE 在用户计算机上以静默方式启动 IIS Express 实例,并将"已发布"文件附加到该实例。这非常有效,我还创建了应用程序退出方法来在退出时销毁 IIS 实例,因此当他们重新启动应用程序时,它不会抛出正在使用的端口异常。

相关文章: