如何使用FileInfo.CreateAsSymbolicLink在C#/NET6.0中创建符号link?

How to create a symbolic link in C#/NET6.0 using FileInfo.CreateAsSymbolicLink?

在 Windows 上 运行 给出此片段:

string filePath = "myfile";
string linkTarget = "myfile.link";

FileInfo finfo = new(filePath);
FileInfo fi = new(linkTarget);

finfo.Create().Close();
Assert.IsTrue(finfo.Exists);

fi.CreateAsSymbolicLink(filePath);
Assert.IsTrue(fi.Exists); // here thrown, assert is false. And LinkTarger == null.

符号 link 未创建且不存在。

对我来说,它看起来像一个 .NET6.0 错误。

有什么问题吗?

我错过了什么?

如何使用 FileInfo 或相关内容创建符号 link?

编辑

我忘了必须是管理员才能在 windows 中创建符号 link, 除了不应该抛出“NotAuthorized”之类的东西?

此时如果我想创建一个符号 link not as admin 那么就不可能了吗?

基于此其他 answer。 文件不存在的原因是程序没有运行管理员权限

似乎有一项政策需要设置以允许非管理员创建符号链接。