将Visual Studio项目保留在网络驱动器上

时间:2008-10-01 20:46:18

标签: visual-studio-2005 network-drive

我们刚刚将所有文件本地存储到网络驱动器。问题是我的VS项目现在也存储在哪里。 (还没有版本控制系统,正在研究它。)我知道我在过去听过这样做的问题,但从来没有听说过解决方法。有工作吗?

所以我的VS安装在本地。这些文件位于网络驱动器上。我怎样才能让它发挥作用?

编辑:我知道应该做什么,但是我现在可以使用创可贴修复此问题并维护网络驱动器吗?

编辑2:我确信我不理解某些事情,但Bob King有正确的想法。我将与领先的Web开发人员一起工作,当他回到办公室找出临时解决方案,直到我们得到某种版本控制设置。谢谢你的想法。

17 个答案:

答案 0 :(得分:30)

虽然我们确实使用了Source Control,但我们也会从Network Drives运行我们的所有项目(不是共享目录,网络驱动器上的私有目录)。网络驱动器每晚备份,并且还使用卷影复制,因此如果您需要在之前恢复某些,那么它就可以通过SC,那么您可以。

要使用正确的权限正确运行项目,请按these steps

基本上,您只需将共享目录映射到驱动器,然后根据该Url将权限授予所有代码。假设您映射到“N:\”,然后使用“N:\ *”作为您的Url模式。你需要使用通配符并不明显,但确实如此。

答案 1 :(得分:19)

这个问题很通用,所以我会回答一下我面临的一个问题。

我在Mac上使用Parallels虚拟机运行Visual Studio 2010,同时通过网络共享将所有项目保留在mac端。但Visual Studio不会从那里加载项目程序集文件。尝试单独使用“caspol”设置权限对我来说没有帮助。

允许Visual Studio从网络共享加载程序集最终对我有用的是编辑文件 “C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ devenv.exe.config”(假设默认安装)。

在xml“< runtime>”中您必须添加的部分

<loadFromRemoteSources enabled="true"/>

您可能必须更改该文件的权限才能允许写访问权限。保存文件。重新启动Visual Studio。

答案 2 :(得分:11)

为了实际回答这个问题,我从jcarle.com复制了这条评论:

使用Visual Studio 2010 / .NET Framework v4.0信任网络共享

2011年1月20日下午4:10 如果您像我一样并且将所有代码存储在服务器上,您可能会学习使用CasPol.exe信任网络共享。但是,从Visual Studio 2008(.NET Framework 2.0 / 3.0 / 3.5)迁移到Visual Studio 2010(.NET Framework 4.0)时,您可能会发现自己在挠头。

如果您习惯使用Visual Studio命令提示符快速访问CasPol,您可能会发现某些项目似乎不符合您的新FullTrust设置。原因是,除非您仔细关注,否则Visual Studio命令提示符默认将.NET Framework 4.0文件夹添加到其路径中。如果您的项目仍在.NET Framework 2.0 / 3.0 / 3.5下运行,则还需要为这些版本设置CasPol。简单来说,我个人在使用1作为代码组而不是1.2时也取得了更大的成功。

要信任所有.NET Framework版本的网络共享,只需使用完整路径为每个版本调用CasPol,如下所示:

  

C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CasPol -m -ag 1 -url file:// YourSharePath * FullTrust
  C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ CasPol -m -ag 1 -url file:// YourSharePath * FullTrust

答案 3 :(得分:5)

如果你有(甚至你没有)多个正在从事这些项目工作的人,我不建议这样做。你只是在寻找麻烦。

如果你是唯一一个在这方面工作的人,另一方面,你会避免很多麻烦。不过,表现已经过时了。至于如何让它工作,你只需从VS打开解决方案文件。您可能会遇到安全问题,但可以使用CASPOL进行更正。正如我所说的那样,表现会很糟糕。再一次,根本不推荐。

帮助自己和您的团队,安装SVN或其他形式的源代码控制,并尽快将代码放在那里。

编辑:我将部分收回我的评论。 Bob King在下面解释了他们从网络驱动器运行VS项目的原因,这是有道理的。我会说,除非你出于特殊原因这样做,就像鲍勃一样,远离它。否则,在设置这样的开发环境之前,请连接你的鸭子。

答案 4 :(得分:3)

我知道这是一个较老的线程,但这是我在寻找解决类似问题时发现的最佳线程我在虚拟盒子上使用visual studio 2013(使用Win 8.1)和主机上的代码(Win 7) )。虽然我可以打开解决方案,但我无法编译。关于这个问题的所有其他答案都与较旧的软件有关,因此我添加了这个答案,以便通过适用于我的解决方案更新这个经常发现的问题。

这就是我的所作所为;制作一个注册表项,以便能够使用UNC路径作为当前目录。

警告:错误地使用注册表编辑器可能会导致严重的系统问题,可能需要重新安装Windows NT才能解决问题。 Microsoft无法保证可以解决因使用注册表编辑器而导致的任何问题。使用此工具需要您自担风险。

在注册表路径下:    HKEY_CURRENT_USER       \软件          \微软             \ Command Processor

添加值DisableUNCCheck REG_DWORD并将值设置为0 x 1(十六进制)。

警告:如果启用此功能并启动具有UNC名称的当前目录的控制台,从该控制台启动应用程序,然后关闭控制台,则可能会导致从该控制台启动的应用程序出现问题。

在链接:http://support.microsoft.com/kb/156276

中找到此信息

答案 5 :(得分:2)

我们如何将此改为每个人都能回答的问题?我和初始海报有完全相同的问题。

我有一份VB 2008(最近从VB6升级)。如果我将我的解决方案存储在备份的网络驱动器上,那么它将不会运行任何一件事。即使在程序集中设置了“allowpartiallytrustedcallers”,它也会为访问模块提供“部分可信的调用者”错误。如果我将文件存储在我的(未备份的)C:上,那么它将运行得非常好,直到我把它放在共享驱动器上供所有人使用,我回到了同样的问题。

这不是一个很大的要求。我只是希望能够在共享驱动器上放置一个解决方案和可执行文件并运行它,而不会有大量关于安全性的废话。我不应该把我的所有工作都塞进表单文件中。

-Edit:我发现了为什么它忽略了AllowPartialllyTrustedCallers命令的问题。我正在尝试引用ADODB,它不允许部分信任。那么,没有网络可执行文件可以访问数据库?无论如何,微软对内联网有什么作用?

答案 6 :(得分:1)

不要这样做。如果您有源代码管理(版本控制),则不希望文件位于网络驱动器上。它完全绕过了你想要通过源代码控制实现的所有功能,因为一旦你的文件在网络驱动器上,任何人都可以修改它们....即使你正在构建你的项目。嘉boooom!

PS:这听起来像是对我来说过度工程的典型案例。

答案 7 :(得分:1)

您有任何具体问题吗?

如果允许多个人打开解决方案,则第一个问题是.NCB文件(Intellisense)将被独占锁定,只有一个用户可以浏览类树。当然,您可能会有一个用户的更改覆盖其他用户的更改。

答案 8 :(得分:1)

所以我遇到了类似的问题。 Visual Studio无法识别我为任何内容映射的驱动器号的网络位置。有趣的是,它工作了一天。我设置了我的项目并开始研究它并没有任何问题。然后,我关闭,第二天没有任何作用。我无法在代码中读/写文件,输出我的可执行文件或任何东西。我的项目是本地的,但我的输出是打算在网络上抛出的。

无论如何,这个问题可能与管理员上下文有关,但我在网上挖掘时发现的一种修复方法是让Visual Studio浏览一下有问题的驱动器。有很多方法可以做到这一点,但VS将神奇地能够识别映射的驱动器号。我的解决方案是转到项目属性中的调试输出位置,单击浏览并转到我在网络驱动器上的先前输出位置和Voila !!!

我想这样说是因为我花了半天的时间试图解决这个问题,并认为可能会节省一些时间。非常感谢,祝你好运!

埃里克

答案 9 :(得分:1)

我最近才遇到同样的问题所以这个答案更多的是为了跟踪我自己的知识。无论如何,如果soumeone发现它有用,下面是问题和解决方案。

问题: NET 4.0项目,SVN repo,checkout文件夹位于本地驱动器上,引用的程序集由构建服务器构建并可在网络驱动器上使用。 W7上的Visual Studio能够添加引用但无法构建项目。

解决方案: 由于NET 4.0不再自动为网络程序集提供沙箱,因此必须通过machine.config更新完全受信任。 http://msdn.microsoft.com/en-us/library/dd409252.aspx

答案 10 :(得分:0)

我在网络驱动器上打开Visual Studio项目时遇到了类似的问题,我通过在本地C:\驱动器上创建指向UNC目录的符号链接来修复它

e.g。

mklink /D "C:\Users\Self\Documents" "\\domain.net\users\self\My Documents"

然后您可以使用C:\ Users \ Self \ Documents \路径而不是UNC路径打开项目

(你必须要小心,因为如果你在浏览项目时双击符号链接,Visual Studio会自动将你重定向到'\\ domain.net ..'路径。我不得不复制粘贴'C:\ Users \'路径以使用驱动器盘符路径打开它)

答案 11 :(得分:0)

如果这有助于其他任何人,我必须执行here概述的步骤,将网络共享位置添加到Windows Intranet区域。特别是,当在网络共享上打开解决方案时(即使用VMware Fusion并从我的Mac硬盘驱动器打开解决方案),我遇到了挂载负载的Visual Studio问题。我也遇到了在这种情况下运行PostSharp的问题。

答案 12 :(得分:0)

我发现这有用,同时尝试使用vc11与在mac上运行的parallels: http://social.msdn.microsoft.com/Forums/en-US/toolsforwinapps/thread/2ffdcb01-c511-4961-834b-afd5f2fbb8e1,具体而言:

  

1)您可以从本地调试切换到远程调试,并将机器名称设置为“localhost”。这将在您的本地计算机上进行远程部署(因此不使用项目的目录)。您不需要安装远程调试器工具,也不需要启动msvsmon就可以在localhost上工作。

答案 13 :(得分:0)

您应该收到警告,Visual Studio中的某些功能将拒绝使用网络驱动器。

例如,SQL Express用户实例的mdf文件必须位于本地驱动器中。

另一个例子,如果你使用UNC路径,你必须确保它们是短路的。

答案 14 :(得分:0)

如果我理解正确,您的Visual Studio项目文件将存储在网络驱动器上,并且您从那里运行它们。这就是我所做的,没有任何问题。您需要确保已设置安全策略。您可以使用Caspol执行此操作,也可以使用控制面板管理工具菜单。

答案 15 :(得分:-1)

“我怎样才能让它发挥作用?” 你有几个选择:

选择A: 1.将所有文件移回本地硬盘 2.在您的计算机上实施某种类型的备份软件 3.测试所述备份解决方案 4.继续编码

选择B: 1.获取一个免费的源代码控制产品的副本并实现它。 2.确保它正在备份 3.测试

选择C: 使用许多可用的ONLINE源代码控制存储库之一。谷歌,SourceForge,CodePlex,等等。

答案 16 :(得分:-4)

好吧,我的问题就是你问这个问题的原因。将它存储在网络驱动器上时它不起作用吗?我自己没有尝试过,我可以想到的一个问题是从网络驱动器运行的.NET代码(即来自bin \ Debug目录,也位于网络驱动器上)将以沙箱模式运行,除非你乱用CASPOL(或使用我听到的3.5 SP1已经消除了这个障碍)。

如果您有特定问题,请询问他们。永远不要问“为什么X不起作用?”。

你不是说你只是一个人或多个人访问同一个远程驱动器,但我假设你只是每个网络目录一个。它是否正确?如果不是,不,没有创可贴。获取版本控制,将文件移回本地磁盘。