如何在Visual Studio 2010中从网络共享中调试解决方案?

7
我最近买了一台新的Mac笔记本电脑,正在Parallels虚拟机中运行VS2010。它大多数情况下都对我有帮助,但是我在调试特定类型的项目时遇到了一些问题,这些问题与通过网络共享访问项目相关。测试项目无法运行,因为测试运行程序无法加载测试的DLL。 Web项目无法在Visual Studio迷你Web服务器中运行,抛出以下异常:
'加载配置文件时发生错误:无法开始监视路径\to\web.config上的更改'。 我花了一晚上在网上搜寻,但没有什么进展。在阅读了这两个帖子后,我尝试了通常的CasPol更改,但随后发现来自VS2010早期测试版之一的这篇文章表明,在.NET 4.0和VS2010中不再需要/支持CasPol。
网络共享可以通过映射驱动器和UNC路径访问。UNC路径的主机是.pfs;根据这篇文章,Windows将以点开头的主机名视为起源于Internet区域。
虚拟机在管理员帐户下运行其应用程序,该账户似乎具有在网络共享中创建、读取、写入和删除文件和文件夹所需的所有权限。但是,我无法通过资源管理器查看适当文件夹的安全属性:安全选项卡不存在。有人成功地从VS2010的网络共享加载和调试Web和测试项目吗?
更新:我尝试在本机Windows机器上使用我的MacBook的IP地址加载VS2010中的解决方案,结果不一。测试项目再次因错误而无法运行:
“Error loading \\192.168.0.4\alastair\Code\project\bin\Debug\Tests.dll: Could not load file or assembly 'file://\\192.168.0.4\alastair\Code\project\bin\Debug\Tests.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)”
然而,在此设置下,ASP.NET MVC项目正常运行,如果我使用MacBook的NETBIOS名称,则会得到完全相同的结果。
当然,为了做到这一点,我必须在Snow Leopard中启用SMB共享,而在我的Parallels虚拟机中访问该位置则不需要。也许在Parallels中有一些设置需要调整以更改共享的权限?我还将此问题标记给管理员,请求将其移动到StackOverflow上;我认为那可能是比SuperUser更合适的论坛。

@alastairs:抱歉,我在回答之前看到了标记,但没有意识到标记是来自OP的。很快迁移。 - quack quixote
你解决问题了吗?我也有同样的问题。谢谢。 - ema
下面所接受的答案中的devenv.exe.config修复似乎已经解决了问题。感谢@Daniel Plaisted! - alastairs
2个回答

4
尝试在 devenv.exe.config 的 runtime 元素下设置 <loadFromRemoteSources enabled="true"/>,如此问题的答案所建议的那样。这对我解决了问题...当从共享加载项目时,Visual Studio 仍会发出警告,但现在运行测试已经可以工作了。

哦,这听起来很有趣!谢谢你的提示,我回家后一定会去查看它! - alastairs
2
那对我来说很有效。但是我在编辑devenv.exe.config时遇到了一些主要问题...访问被拒绝了。我的解决方法是以“管理员”身份打开Notepad.exe,然后我就能够编辑文件并使其正常工作了。 - Marcus Hammarberg

0

这假设问题确实与Windows“将以点开头的主机名视为来自Internet区域”有关。也许还有其他原因,但以下选项(3)应该是快速验证或证明其是否是问题的一部分的方法。


在 DNS 主机名中,句点(.)不是常用字符;它通常被解释为主机名和域名之间的分隔符(例如,localhost.localdomain)。DNS 主机名通常限制为“LDH”——字母、数字和连字符。

UNC 路径和 Windows 网络(NetBIOS)名称可能会遇到类似的问题。根据 RFC3696 的规定,句点是合法的,但您需要根据 RFC1035 的规定转义主机名中使用的句点。如果我正确地阅读了 RFC1035,您的主机名应该是 \.pfs 而不是 .pfs

我想知道如果您

  1. 将主机名更改为不包含点的名称(在共享服务器上),并相应地更新客户端。
  2. 更改客户端上共享的 UNC 路径,以使用正确的转义序列来处理句点,或者
  3. 更改客户端上共享的 UNC 路径,以使用 IP 地址而不是主机名。

谢谢回答。我已经更新了我的问题,并且我的回复有点长,不适合放在评论里! - alastairs

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