繁体   English   中英

Windows 10中的Visual Studio管理员模式

[英]Visual Studio Administrator mode in Windows 10

我不确定我的确切问题,但情况如下:

我有一个应用程序(WinForms,C#.Net),我在Visual Studio 2012中开发。它做了很多事情,但重要的是它需要从某个位置读取文件。

在这种情况下,文件的位置在服务器上,我的机器具有用于访问文件的映射网络驱动器设置。 我可以使用Windows资源管理器手动导航到文件。

我的代码中有以下行突出显示了该问题:

System.IO.File.Exists("X:\\A Folder\\a_file.txt");

该文件确实存在于该位置。 但是,这就是出现问题的地方:如果我构建解决方案并直接从“bin”文件夹运行.exe(双击)。 代码很好,它找到了文件。 但是,如果我使用visual studio运行它,那么我会得到一个“找不到文件”的例外。

我认为Visual Studio以“管理员”模式运行(我忘记了为什么我需要这个,但我这样做)。 现在,如果您认为“管理员”帐户没有映射“X:\\”驱动器,这是有道理的。 但是,在我上周升级到Windows 10之前,这一直不是问题。

所以我的问题是

Visual Studio Administrator模式在Windows 10中的工作方式是否有所不同? 在这种情况下,它是否以不同方式处理映射的网络驱

值得注意的是我从Windows 7升级,因此无法确认此问题是否也出现在8和8.1中。

在任何人问之前,让我们说它必须是一个映射驱动器。 不允许UNC路径!

所以我找到了解决方案/解决方法。 现在看起来好像是浪费的赏金,所以如果有人有更好的其他建议那么请发帖,我会审查他们并奖励适用。 或者即使有人可以制作更详细的解决方案版本,我也会奖励那个解决方案。


该问题可能不是特定于Visual Studio,但对于以提升的权限运行的任何应用程序都会发生。 无论如何,我找到的解决方案是添加一个注册表项,使管理员模式下运行时可以访问相同的共享驱动器。

注册表项位置是:

HKEY_LOCAL_MACHINE / SOFTWARE /微软/视窗/ CURRENTVERSION /策略/系统

添加的关键是:

EnableLinkedConnections

并应创建为值为10x00000001 )的DWORD

我检查了运行Windows 7的机器,他们没有这个密钥,但它们仍然可以正常工作。 所以我认为这不是唯一的解决方案,但似乎确实有效(尚未注明副作用)。 我假设Windows 10在某处具有特定设置,默认情况下会阻止映射驱动器以“以管理员身份运行”自动使用。

作为参考,我在这里找到了这些信息

事实上, 这是使用此注册表项的更“官方”建议

这不太可能与Windows 10有关,只是与您的机器配置有关。 您所描述的内容是正常的,并由此知识库文章涵盖。 我无法检查自己,所以只需尝试推荐的解决方法,必要时在superuser.com上进行跟进。

可能正在运行不同的用户/系统任务 因此,您已映射X驱动器,但其他人没有。 您也可以在Windows安装上的其他用户上执行驱动器映射。 正如您所说,这不应该是Windows 10唯一的问题,而是Windows 7+和提升的权限。

也许您可以为X:路径使用已配置的参数并在运行时加载,甚至尝试使用UNC路径,这些路径将在运行时解析而不需要映射驱动器。

\\ServerNameOrIP\A Folder\a_file.txt.

在代码中,您需要:

System.IO.File.Exists("\\\\ServerName\\A Folder\\a_file.txt");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM