Цель состоит в том, чтобы обновить цель символической ссылки атомарно. Все мои исследования говорят, что единственный способ сделать это - создать новую символическую ссылку с новой целью, а затем удалить / заменить старую символическую ссылку. File.Replace () выбрасывает IOException «Это приложение не поддерживает текущую операцию над символическими c ссылками». В настоящее время я использую родной "kernel32.dll" для создания символической ссылки. Любой совет, как go об обновлении / замене старой символической ссылки на новую, очень помог бы.
if (File.Exists(oldSymlink))
{
// Create temp symlink to replace old link
var replacementSymlinkFile = "path/to/newLink";
CreateSymbolicLink(replacementSymlinkFile, newTargetFile, 0)
File.Replace(replacementSymlinkFile, oldSymlink, null); // throws SYSTEM IO ERROR This application does not support the current operation on symbolic links
}