VirtualBox 中的 Visual Studio,如何将源代码根目录放在 Linux 主机上?

VirtualBox 中的 Visual Studio,如何将源代码根目录放在 Linux 主机上?

这个问题与在 Linux VM 中的 Visual Studio 中编码?。我考虑过把它发布到 Stack Overflow 上,但由于它严格来说不是一个编程问题,所以我认为它更适合 SuperUser。

我有一个 VirtualBox VM,它在我的主要 Linux 系统上运行 Windows 7、Visual Studio 2012 和其他一些零碎的东西。这很好用,但主要是为了方便有用的备份,我想将本地源代码树放在 VM 之外。(VM 确实会备份,但只是以“全有或全无完整磁盘映像”的方式,而不是主机系统备份的更有用的单个文件。)

我尝试简单地创建一个共享目录(如~/src在主机上)并将其映射到 VM 中。映射本身工作正常,我能够从源代码控制中执行获取最新版本来填充它,但似乎主机端不喜欢 Visual Studio 创建某些工作文件的方式,因此我收到大量错误(包括来自 CSC 和朋友的关于无效文件格式的构建错误)。我想某些文件的“隐藏”属性可能与此有关,因为 ext3 至少直接不支持文件上的这种奇特属性,但也可能涉及其他因素。

所以问题就变成了:如何让 VirtualBox VM 中的 Windows 能够存储文件作为主机上的单独文件,以与 Visual Studio 2012 创建其工作文件的方式兼容?

我知道可以定期从 VM 内部复制文件出 VM,但如果有其他选择,我宁愿不采用这种方式。

答案1

我只是将其作为一种可能的解决方案提出来,因为您的问题听起来与我遇到的问题类似,尽管实际的硬件和软件细节至少从表面上看有很大不同。

就我而言,我的 Windows 网络上运行着一台商用 NAS,它运行 Linux。NAS 上的共享在网络上的 Windows 机器上显示出来,并且大部分工作正常,但是 NAS 上运行的 SMB 服务器不支持所有 NTFS 文件系统属性,这有时会造成问题,因为我使用的某些软件依赖于它们。

令人惊讶的是,我使用的解决方法是基于 TrueCrypt 的,尽管它的目的并不是真正地加密文件。原因是 TrueCrypt 允许您创建大型 TC 卷文件,在其中模拟本机 Windows NTFS 文件系统的加密版本。卷文件本身不需要支持任何不常见的文件属性,但可以完美地支持其所包含的所有文件的所有属性。

要访问存储在 NAS 上的文件,我首先需要在其中一台 Windows 机器的网络共享上安装 TrueCrypt 卷文件,并在每台计算机上安装 TrueCrypt 软件,从而创建一个虚拟驱动器,其内容包括所有正常的 NTFS 文件及其所有属性。

TrueCrypt 速度非常快,以至于使用它时几乎无法察觉性能问题。但是,如果您愿意,可以使用其他程序,只要它能够使用另一个文件的内容枚举 NTSF 文件系统即可。也许您可以为此使用相同的 Windows 7 或单独的 VirtualBox VDI(虚拟磁盘映像)卷文件。

答案2

您看过 Vagrant 了吗?共享文件位于主机上,在虚拟机关闭时仍可访问。大多数 vagrant 框都以无头模式运行,但您可以切换它们以启动 GUI。话虽如此,我从未使用过 Windows vagrant 框 :)

相关内容