46

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

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

编辑:我知道应该做什么,但是我现在可以戴上创可贴来解决这个问题并维护网络驱动器吗?

编辑 2:我确定我不理解某些东西,但Bob King的想法是正确的。当他回到办公室时,我将与首席 Web 开发人员一起找出临时解决方案,直到我们获得某种版本控制设置。感谢您的想法。

4

17 回答 17

33

虽然我们确实使用源代码控制,但我们也确实从网络驱动器(不是共享目录,网络驱动器上的私有目录)运行我们的所有项目。网络驱动器每晚备份一次,并且还使用卷影复制,所以如果您需要在它进入 SC之前恢复到某些东西,那么您可以。

要让项目在正确的权限下正确运行,请按照以下步骤操作。

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

于 2008-10-01T20:57:57.467 回答
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。

于 2012-04-18T20:00:56.057 回答
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

于 2011-06-28T17:20:09.530 回答
5

如果您有(或者即使您没有)多个从事项目的人,我不建议您这样做。你只是自找麻烦。

另一方面,如果你是唯一一个工作的人,你将避免很多麻烦。不过,性能将超出预期。至于如何让它工作,你只需从 VS 打开解决方案文件。您可能会遇到安全问题,但可以使用 CASPOL 进行纠正。不过,正如我所说,性能将会很糟糕。同样,完全不推荐。

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

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

于 2008-10-01T20:47:40.000 回答
3

我知道这是一个较旧的线程,但这是我在寻求解决类似问题时发现的最好的线程,我在虚拟机上安装了 Visual Studio 2013(使用 Win 8.1)和主机上的代码(Win 7)。虽然我可以打开解决方案,但我无法编译。与此相关的所有其他答案都与旧软件有关,因此我添加了此答案以使用适合我的解决方案更新这个常见问题。

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

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

注册表路径下:HKEY_CURRENT_USER\Software\Microsoft\Command Processor

添加值 DisableUNCCheck REG_DWORD 并将值设置为 0 x 1 (Hex)。

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

在链接中找到此信息:http: //support.microsoft.com/kb/156276

于 2015-02-25T20:51:15.363 回答
2

我们把它改写成一个每个人都能回答的问题怎么样?我和最初的海报有完全相同的问题。

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

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

-编辑:我发现了它为什么忽略 AllowPartiallyTrustedCallers 命令的问题。我正在尝试引用 ADODB,它不允许部分信任。那么,没有网络可执行文件可以访问数据库吗?无论如何,Microsoft 对 Intranet 有什么反对意见?

于 2010-05-24T17:01:45.363 回答
1

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

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

于 2008-10-01T20:52:47.477 回答
1

你有什么具体问题吗?

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

于 2008-10-01T20:57:52.550 回答
1

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

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

我想提出这个问题,因为我花了半天时间试图弄清楚这一点,并认为它可能会为其他人节省一些时间。非常感谢,祝你好运!!!

埃里克

于 2011-09-09T22:51:50.413 回答
1

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

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

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

于 2012-02-28T12:43:48.073 回答
1

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

例如

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

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

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

于 2018-04-19T18:14:01.210 回答
0

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

于 2008-10-01T20:52:36.027 回答
0

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

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

再举一个例子,如果你使用 UNC 路径,你必须确保它们足够短。

于 2009-11-24T05:39:29.660 回答
0

我在尝试将 vc11 与在 mac 上运行的并行程序一起使用时发现这很有帮助:http://social.msdn.microsoft.com/Forums/en-US/toolsforwinapps/thread/2ffdcb01-c511-4961-834b-afd5f2fbb8e1 特别是:

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

于 2012-03-17T17:30:36.647 回答
0

如果这对其他人有帮助,我必须按照此处列出的步骤将网络共享位置添加到 Windows Intranet 区域。特别是,当我在网络共享上打开一个解决方案时(即使用 VMware Fusion 并从我的 Mac 硬盘上打开一个解决方案),我遇到了 Visual Studio 挂起的问题。在这种情况下,我也遇到了 PostSharp 运行的问题。

于 2013-03-29T14:46:29.023 回答
-1

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

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

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

选择 C:使用众多可用的在线源代码控制存储库之一。谷歌、SourceForge、CodePlex 等等。

于 2008-10-01T20:54:42.683 回答
-4

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

如果您有具体问题,请询问。永远不要问“为什么做 X 不起作用?”。

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

于 2008-10-01T20:54:20.593 回答