Powershell可以在动态模块路径中“使用”语句吗?

问题描述 投票:0回答:1

我有一些powershell模块,其中包含需要从各种powershell脚本实例化的类。要从Powershell脚本访问类,我有如下语句:

  using module "..\..\Library\Mymodule.psm1"

但是我事先不知道我的库相对于脚本在文件夹层次结构中的哪个位置。

我们不想使用标准的powershell modules文件夹,因为这些类在源代码控制之下,并且部署到用户的文件夹将是噩梦。

对于Google来说,这是一个非常困难的话题,因为在任何地方都使用“ using”!

尝试为同一文件提供多个可能的位置,但是对于不存在的备用位置,我们当然会收到错误消息:

未加载指定的模块'C:... Mymodule.psm1',因为在任何模块目录中均未找到有效的模块文件。在第0行char:0

using module "..\..\Library\Mymodule.psm1"
using module "..\Library\Mymodule.psm1"
using module ".\Library\Mymodule.psm1"

但是我宁愿运行一个函数来首先确定正确的模块路径,然后再使用类似的东西

using module "$foundModulePath"

是否有任何方法可以动态设置模块的路径,然后“使用”它?

powershell dynamic directory using
1个回答
0
投票

我将在单独的存储库中对模块进行版本控制,并在运行时在工作空间内编写该存储库的克隆函数。

在该仓库中使用标签-将使我能够控制为每个脚本加载的模块的版本。这将使模块的开发成为可能,即使脚本仍然必须使用旧版本,并且我不想因为修改了依赖关系而“花时间”重新编写模块。

理想2。Gradle在处理大型项目中的混乱依赖列表方面非常出色。您可以构建一个gradle脚本来准备工作空间,然后从其中开始执行powershell脚本。See Link here

© www.soinside.com 2019 - 2024. All rights reserved.