0

我正在使用 VS2010 Professional 中的 Visual Studio Addin 使用 Qt 开发一个项目。该项目的两个分支使用两个不同的 Qt 版本(4.8.4 和 5.0.2),所以我安装了两个版本的插件(1.1.11 和 1.2.1)。我也在积极地使用至少两台计算机进行开发,都是 Windows 7,我有一个联网的漫游用户配置文件。我不知道如何设置此用户帐户或网络的细节。

Qt 安装在每个系统的不同位置。如果我在一个系统(系统 A)上的插件中设置了正确的路径,它会为另一个系统(系统 B)更改它们,然后当我稍后登录系统 B 时向我抱怨该目录中不存在 Qt。有没有办法在系统上保存 Qt 版本的路径,而不影响其他系统上的路径?还是我每次更换电脑时都必须处理更改它们?

编辑:

我通过查看 Visual Studio 加载项的源代码,发现这些设置保存为用户注册表值。我对 Windows 漫游配置文件了解不多,但我现在假设用户注册表值在计算机之间复制,就像它们的文件一样。我不知道是否有任何方法可以将这些注册表值移动到其他地方,而无需编辑和重新编译加载项。我想我唯一能做的就是编写一个启动脚本来在登录时编辑这些设置。

4

1 回答 1

1

编辑:确保每台计算机上的 Visual Studio 可以在您使用的计算机上找到正确的加载项和正确的环境变量。

http://qt-project.org/wiki/QtVSAddin

在本文档中,它讨论了它的安装位置:

"%USERPROFILE%\Documents\Visual Studio 2008\Addins"

因此,您可以手动将插件的位置更改为某个本地系统路径。

如何 -> Visual Studio 添加管理器

或者,您可以在每次登录时或在打开 Visual Studio 之前更改加载项引用的 qt 路径。

从 Windows 批处理文件设置系统环境变量?

我会使用版本控制来获取项目所需的文件,并排除/忽略项目的所有环境特定元素。

您可以实现此目的的一种方法是:

安装集市。在共享驱动器或硬盘驱动器上两个用户都可以访问的位置上创建独立的代码树。

add对所有源文件和头文件以及 qt .pro 文件进行初始处理。

签出或将代码分支到用户特定的文件夹。在这些用户特定的文件夹中,让 Visual Studio 创建所有用户特定的、Qt 附加组件特定的(等)文件。

还要创建一个.bzrignore文件,其中包含如下所列的文件和文件夹:

Debug
Release
x64
*.ncb
*.suo
*.user
*.vssscc
*.scc
*.vspscc
*.lnk
*.bak
*.aps
*.pro.user
object_script.*
Makefile
Makefile.Release
Makefile.Debug

然后,当您想为每个设置尝试构建时,完成您的编辑,commit/push您对进行编辑的用户和update/pull想要更改的用户的更改。

虽然版本控制上手可能有点棘手,但它将使项目协作具有可扩展性、可跟踪性和可管理性!

而且您不仅限于 Bazaar。如果您需要想法,请查看此 wiki。

http://en.wikipedia.org/wiki/Comparison_of_revision_control_software

您可以尝试执行此操作的另一种方法是将所有源代码放在某个路径(绝对或相对于您的项目位置)或计算机上,并让项目文件夹引用项目中的这些路径文件夹,但有两个单独的项目文件夹。这不会那么优雅,但会起作用。

C:/path/to/vs_proj1
C:/path/to/vs_proj2
C:/path/other/proj/source

而在vs_proj1和vs_proj2的属性中,关于定位源文件的部分,../other/proj/source要相对查找,或者放绝对路径C:/path/other/proj/source

在像这样通过驱动器共享项目时还需要注意的另外两件事是,当您引用库时,您可能希望将该信息存储在 Visual Studio 中用户特定的宏文件中,并在项目设置中引用该宏。

Visual Studio - 在哪里定义自定义路径宏?

当我在这里时,您可能需要#define在您的程序中做一些事情,以允许一个 Qt 版本不在另一个版本中的行为。

例如,在您的程序源代码中,您可能有:

#if QT_VERSION < 0x050000
// some Qt 4.x specific stuff, not in Qt 5
#else
// some Qt 5 specific stuff, not in Qt 4.x
#endif

希望有帮助。

于 2013-05-31T17:44:44.507 回答