能否在LinqPad脚本的引用中使用环境变量?

4

我的团队有很多 Linqpad 脚本,我们通过 git 存储库进行共享。我们使用对自己代码库的引用,每个团队成员的本地路径可能不同。因此,如果我们想要运行这样的脚本,我们需要首先编辑其引用以指向正确的位置。以下是该引用的示例:

D:\git_repos\codebase\bin\example.dll

我尝试使用环境变量来设置我们代码库的位置。例如:
%codebase%\bin\example.dll

这似乎可行,Linqpad会正确加载DLL。然而,当我保存脚本时,它会保存环境变量的扩展版本。是否可能阻止LINQPad在References中存储环境变量的扩展版本?如果不行,是否有替代方法?


1
这不是一个选项。请提交更改请求。 - Gert Arnold
也许你可以稍微减轻一下痛苦。我有一个在提交之前视觉差异化我的文件的习惯。主要优点:它帮助我在编写提交消息时审查“为什么”的同时回顾“什么”。次要优点:我可以轻松撤消无意或不必要的更改。 - Tom Blodget
2个回答

3

在LinqPad中没有内置的自动化工具可以让您做到这一点。

然而,我为清理提交到仓库的LinqPad脚本中的<Connection>信息编写了一个脚本

修改它以暂时扩展环境变量引用标记,然后完成后恢复即可。或者相反地,修改它以将所有已建立的相对或绝对路径替换为从扩展环境变量得出的内容,以便在停止运行脚本时进行自动还原。


1

一个可能的解决方法是创建一个"install.linq"文件来创建符号链接,例如在C:\ProgramData中,并在共享脚本的引用中使用这些符号链接

管理员可以使用以下类似的命令:

string codePath = null; // Please set path to code on your machine.

var service = "MyService"; // TODO: Loop over actual project-paths.

var path = Path.Combine(@"C:\ProgramData\MyCompany", service);
var pathToTarget = Path.Combine(codePath, service, @"bin\Debug\net7.0");

Directory.CreateSymbolicLink(path, pathToTarget);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接