Windows 10中的Visual Studio管理员模式

时间:2015-09-16 14:09:03

标签: visual-studio visual-studio-2012 windows-10 administrator

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

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

在这种情况下,文件的位置在服务器上,我的机器具有用于访问文件的映射网络驱动器设置。我可以使用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路径!

3 个答案:

答案 0 :(得分:6)

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

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

注册表项位置是:

  

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

添加的关键是:

  

EnableLinkedConnections

应创建为DWORD,其值为10x00000001

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

作为参考,我找到了this information here

事实上,here is a more "official" recommendation使用此注册表项。

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

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

\\ServerNameOrIP\A Folder\a_file.txt.

在代码中,您需要:

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