powershell - Powershell 可以使用动态模块路径“使用”语句吗?
问题描述
我有一些 powershell 模块,其中包含我需要从各种 powershell 脚本实例化的类。要从 powershell 脚本访问类,我有如下语句:
using module "..\..\Library\Mymodule.psm1"
但我不提前知道我的库在文件夹层次结构中与脚本的相对位置。
我们不想使用标准的 powershell 模块文件夹,因为这些类处于源代码控制之下,部署到用户的文件夹将是一场噩梦。
这对谷歌来说是一个非常困难的话题,因为到处都在使用“使用”!
尝试为同一个文件提供多个可能的位置,但当然我们会收到不存在的备用位置的错误:
未加载指定的模块“C:...Mymodule.psm1”,因为在任何模块目录中都找不到有效的模块文件。在行:0 字符:0
using module "..\..\Library\Mymodule.psm1"
using module "..\Library\Mymodule.psm1"
using module ".\Library\Mymodule.psm1"
但我宁愿运行一个函数来首先确定正确的模块路径,然后使用类似这样的东西
using module "$foundModulePath"
有没有办法动态设置模块的路径然后“使用”它?
解决方案
我会在一个单独的存储库中对我的模块进行版本控制,并编写一个函数,在运行时在工作空间内克隆该存储库。
在该 repo 中使用标签 - 可以让我控制我为每个脚本加载的模块的版本。这将使模块的开发成为可能,即使脚本仍然必须使用旧版本并且我不想“投入”时间重新编写它,只是因为我已经更改了依赖项。
想法2。Gradle 非常擅长处理大型项目中凌乱的依赖列表。
您可以构建一个准备工作区的 gradle 脚本,然后从其中执行您的 powershell 脚本。
在此处查看链接
推荐阅读
- c++ - 什么是错位临时?
- python - 如何在不枚举的情况下索引数据加载器中的特定对象
- android - 使用任何库在 google maps for android 上渲染 kml
- python - 'sudo pip3' 而不是 'pip3' 使 pip3 工作
- javascript - 如何计算 jQuery 表格中选定选项的特定值
- php - 远程服务器上的 strtotime() 问题
- nlp - 使用 hunspell 模块提取词干
- javascript - 获取请求在测试模式下工作,但在生产中失败 - Google App Engine
- javascript - 使用 Javascript 解析 HTML bodyText
- go - 读取任意数量的输入标准输入