5

我有一组属性表,它们为我的 c++ 项目中常用的第三部分库定义包含和链接路径。当我在调试器中启动它时,有没有办法在这些页面中定义可执行文件以查找二进制文件?

编辑:我注意到如果我将以下内容添加到属性表(通过记事本)

<PropertyGroup>
   <VCRedistPaths>c:\path\bin\$(Platform);$(VCRedistPaths)</VCRedistPaths>
</PropertyGroup>

然后,当应用程序在调试器下运行时,我得到 c:\path\bin\Win32 (例如)路径附加,但这里的问题是 Visual Studio 不会立即检测到我的更改(如果我更改属性表中的路径或追加另一个路径的另一个属性表),我必须重新启动 Visual Studio 才能更改拾取。任何人都知道这是否可以避免?

4

2 回答 2

7

这是一个在 VS2010 中为我工作的示例属性表:

mysheet.props

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup>
    <LocalDebuggerEnvironment>PATH=%MYLIB_ROOT%\bin;%PATH%$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>
  </PropertyGroup>
  <ItemDefinitionGroup>
    <ClCompile>
      <AdditionalIncludeDirectories>$(MYLIB_ROOT)\include</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <AdditionalLibraryDirectories>$(MYLIB_ROOT)\lib</AdditionalLibraryDirectories>
      <AdditionalDependencies>mylib.lib</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup />
</Project>

LocalDebuggerEnvironment我通过在项目属性中手动设置 PATH 环境变量来获得使用的想法:

proj_prop_env_var

此更改反映在*.vcxproj.user项目选项文件中,然后我将其复制到我自己的属性表中。

高温高压

于 2013-05-26T02:33:59.107 回答
-1

不确定您在谈论哪种属性页面。它不能由项目属性表设置,它是一个调试设置。项目+属性,调试,环境设置。将其设置为,例如,

 path = c:\foo;c:\bar

并且它们将被合并到系统环境的 PATH 变量值中。

请注意,一般来说,依赖 PATH 并不是一个好习惯。您将需要创建一个安装程序以确保用户的机器具有正确的 PATH 值。需要重新启动以确保其生效。它很容易被在你之后运行的糟糕安装程序破坏。

更好的方法是使用构建后事件,该事件使用 xcopy /d 将所需的 DLL 复制到 $(TargetDir) 中。

于 2012-10-28T14:43:07.880 回答