代码之家  ›  专栏  ›  技术社区  ›  alastairs

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

  •  7
  • alastairs  · 技术社区  · 15 年前

    我最近买了一台新的Mac笔记本电脑,正在运行与虚拟机并行的VS2010。它对我来说大部分都很好,但是我在调试特定的项目类型时遇到了一些问题,这与通过网络共享访问项目有关。测试项目不运行,因为测试运行程序无法加载测试的dll。Web项目无法在Visual Studio Mini Web服务器中运行,引发以下异常:

    'An error occurred loading a configuration file: Failed to start monitoring changes to path\to\web.config'.

    我花了一晚上的时间在网上搜网,但运气不好。读后 these two 我尝试了通常的caspol变化,但后来发现 this post 从一个早期的vs2010 betas表明caspol在.NET 4.0和vs2010中不再需要/支持。

    可以通过映射驱动器和UNC路径访问网络共享。UNC路径的主机是 .pfs 根据 this post Windows将以点开头的主机名视为源于Internet区域。

    虚拟机在管理员帐户下运行其应用程序,该帐户在网络共享上似乎具有创建、读取、写入和删除文件和文件夹所需的所有权限。我说“似乎有”,因为我无法通过资源管理器查看相应文件夹的安全属性:安全选项卡不存在。

    是否有人成功地从VS2010中的网络共享加载和调试Web和测试项目?

    更新: 我尝试使用我的MacBook的IP地址将VS2010中的解决方案加载到一台单独的本机Windows计算机上,结果参差不齐。测试项目再次运行失败,错误为:

    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名称,则在这里得到完全相同的结果。

    当然,为了做到这一点,我必须在SnowLeopard中启用SMB共享,这不需要访问并行虚拟机中的位置。也许在并行程序中有一些设置需要调整以更改共享权限?

    我还将这个问题标记为版主请求将其移动到stackoverflow;我认为它可能比超级用户更合适。

    2 回复  |  直到 15 年前
        1
  •  4
  •   Community Mohan Dere    8 年前

    尝试设置 <loadFromRemoteSources enabled="true"/> 在devenv.exe.config的运行时元素下,如 this question . 它为我解决了这个问题…在从共享加载项目时,Visual Studio仍然会警告我,但现在运行测试可以工作了。

        2
  •  0
  •   quack quixote    15 年前

    这假设Windows“将以点开头的主机名视为源自Internet区域”的问题确实存在。它可能是其他的东西,但是下面的选项(3)应该是一种快速的方法(dis)证明这是问题的一部分。


    期间( . )不是DNS主机名中经常使用的字符;它通常被解释为主机名和域名之间的分隔符(例如, 本地主机.localdomain )DNS主机名通常仅限于“ldh”——字母、数字和连字符。

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

    我想知道如果你

    1. 将主机名(在共享服务器上)更改为 包括一个点(并相应地更新客户机),
    2. 更改共享的UNC路径(在客户端上)以使用适当的转义序列进行句点,或
    3. 更改共享(在客户端)的UNC路径以使用IP地址而不是主机名。