这个问题与在 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 框 :)