在Visual Studio(C ++)2008中包含项目结构之外的项目文件

时间:2012-01-19 14:14:03

标签: visual-studio visual-c++ project solution

我有一个Visual Studio解决方案,其中包含20多个项目。它还使用各种工具和DLL files(静态,未更改的文件)的大型存储库,这是一个非常大的SVN结帐,只在硬盘上出现一次(由于静态性质和绝对大小)

但是,我有很多项目的Visual Studio签出,所有项目都处于不同的状态,版本等,以及不同的磁盘和不同的路径。

我有一组静态DLL文件,需要从磁盘上的静态库资源位置复制,其位置由环境变量指示,该变量在所有项目设置中使用(以及所有其他编程也使用的语言。)

目前,我总是手动将所需的DLL文件复制到项目bin输出文件夹,但现在我正在尝试让Visual Studio自动复制这些文件,这样我就可以立即运行应用程序。 / p>

我想使用Visual Studio日期/时间和存在检查来干净地整合它,但添加到我的项目中的文件总是使用相对路径(到项目)添加,如果我在另一个磁盘上签出并且/它会导致问题或者在文件系统中的不同深度。

我的项目文件中的值示例:

<File
...
        RelativePath="main.cpp"
...
        RelativePath="..\..\..\..\..\somelib-1.3\redistributables\somelib.dll"
...
        RelativePath="F:\somelib-1.3\redistributables\somelib.dll"

我已尝试直接在项目XML中修改这些字段

RelativePath="%MYLIBPATH%\somelib-1.3\redistributables\somelib.dll"

RelativePath="${MYLIBPATH}\somelib-1.3\redistributables\somelib.dll"

但不幸的是,两者都没有。

替代方案:

  • 将DLL文件包含在SVN的实际项目中;这会导致重复
  • 项目中的虚拟文件,目标位置的DLL文件作为输出,自定义构建步骤使用某些内容将其复制并触摸文件(由于日期/时间比较);相当丑陋
  • 执行xcopy的项目级自定义构建步骤;该步骤绕过日期/时间检查,因此始终运行

我还能做什么?

0 个答案:

没有答案