3

背景:我有一个链接到第三方库的程序。该库有两个版本,因此我创建了两个指向相同代码的解决方案。这可能看起来很奇怪,但代码不必不同。只有解决方案中的设置需要不同(即库名称不同,CRT 版本不同)。

  • 解决方案A 使用第三方库的版本A(使用 CRT 版本 8.0)。
  • 解决方案B 使用第三方库的版本B(使用CRT 版本9.0)。
  • 解决方案A 和解决方案B 都指向相同的代码。

我在项目属性表中设置了一个指向正确版本库的宏。库文件不在解决方案文件夹中。该宏允许项目正确构建。

为了让可执行文件运行,我必须告诉它第三方库的位置。为此,我可以转到Configuration Properties-> Debugging->Environment并将库的路径添加到%PATH%环境变量中。

问题:这工作正常,但仅限于调试模式。如何%PATH%在发布模式下添加到环境变量?这可以使用项目属性表来完成吗?


注意:部署程序时,批处理文件会在运行之前设置环境。但是,我希望能够在 Visual Studio 中运行发布可执行文件以保持一致(这对其他开发人员来说会更容易)。

有人可能会问为什么我在解决方案文件夹中没有库,或者为什么我不将它们与可执行文件一起放入。我犹豫是否这样做,因为一个版本的库占用了大约 180 MB。我现在只需要两个版本,但这肯定会改变。

4

2 回答 2

1

您不需要创建具有单独属性的单独解决方案。对于一种解决方案,您可以创建多个配置。每个配置都有自己的编译参数。

Right Click on your project -> Properties -> Configuration Manager -> New.

关于“这工作正常,但仅限于调试模式”。是的,您只为调试模式设置参数。所以这是正常的,它只在调试模式下工作。

对于您的库,如果它们是静态的:

Properties -> Linker -> Input -> Additional Dependencies

Properties -> Linker -> General -> Additional Library Directories
于 2013-07-11T14:21:33.433 回答
1

我们解决这个问题的方法是使用批处理文件运行Visual Studio 本身,该批处理文件在继承环境的Visual Studio 启动之前设置任何环境变量(例如PATH)。这允许环境设置对于 VS 的运行是临时的,并在所有构建配置中继承。

这适用于调试、发布和您可能拥有的任何自定义构建配置。

于 2013-07-11T14:23:35.557 回答