【问题标题】:Launching a project from another从另一个启动项目
【发布时间】:2014-11-28 01:02:43
【问题描述】:

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

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

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

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

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

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

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

是否可以在 WPF 应用程序启动时启动 WebAPI 的实例(就像我在 WebAPI 项目中按 F5 一样)而不在 WPF 解决方案中包含 WebAPI 项目?

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

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

【问题讨论】:

    标签: c# .net wpf visual-studio devserver


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-04
        相关资源
        最近更新 更多