Ser*_*gey 5 msbuild path visual-studio-2010 propertysheet visual-c++
我有一组属性表,它们定义了我的c ++项目中常用的第3部分库的包含和链接路径.有没有办法在可执行文件中定义PATH,以便在我在调试器中启动它时找到二进制文件?
编辑:我注意到如果我将以下内容添加到属性表(通过记事本)
<PropertyGroup>
<VCRedistPaths>c:\path\bin\$(Platform);$(VCRedistPaths)</VCRedistPaths>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
然后我在调试器下运行app时得到c:\ path\bin\Win32(例如)路径,但问题是visual studio没有立即检测到我的更改(如果我更改属性表中的路径或附加另一个属性表与另一个路径),我必须重新启动visual studio以获取拾取的更改.谁知道这是否可以避免?
这是一个在VS2010中为我工作的示例属性表:
<?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>
Run Code Online (Sandbox Code Playgroud)
我想到了LocalDebuggerEnvironment
在项目属性中手动设置PATH环境变量的用法:
此更改反映在*.vcxproj.user
项目选项文件中,然后我将其复制到我自己的属性表中.
HTH
Han*_*ant -1
不确定您在谈论哪种属性页。它不能通过项目属性表进行设置,它是一个调试设置。项目+属性、调试、环境设置。比如说,将其设置为
path = c:\foo;c:\bar
Run Code Online (Sandbox Code Playgroud)
它们将被合并到系统环境的 PATH 变量的值中。
请注意,一般而言,依赖 PATH 并不是一个好的做法。您将需要创建一个安装程序以确保用户的计算机具有正确的 PATH 值。需要重启才能确保生效。而且它很容易被在你的安装程序之后运行的蹩脚安装程序破坏。
更好的方法是使用构建后事件,该事件使用 xcopy /d 将所需的 DLL 复制到 $(TargetDir) 中。