我目前正在尝试将性能分析器用于Visual Studio 2013(C ++)中的项目。该项目在Visual Studio中以调试和发布模式运行,具有配置属性 - >调试 - >环境设置为PATH = $(MYPATH);%path。
我使用它来允许Visual Studio查找分散在不同目录中的所有dll(例如,boost dll都在我的计算机上的一个位置)。
出于某种原因,使用性能向导时它不起作用。我使用了推荐的CPU采样并确保我的应用程序可以在F5上启动。从性能向导启动时,它说:
"程序无法启动,因为您的计算机缺少mydll.dll ..."
我怀疑问题在于启动时探查器使用的环境变量。有没有告诉分析器使用特定的环境变量?
我已经搜索了一段时间但我没有找到任何关于如何做到这一点的信息。也许我没有使用正确的关键字?我读过这些但是他们并没有真正帮助:
显然不是我想要的:https://msdn.microsoft.com/en-us/library/dd557761.aspx
无法解决集成探查器的问题:How do I set Environmental variable for my application while profiling it under visual studio 2008
这不是同一个问题:How do I run the Visual Studio 2012 memory profiler? I'm getting the error DA0002
我使用的属性表非常类似于此处所描述的VS2013:C++ - Using environment variable in property sheet for Visual Studio 2010
**需要注意的是:如果我在我的.exe文件夹中复制丢失的dll,它可以正常工作。这个解决方案需要大量复制,如果可能的话我宁愿避免使用它。
答案 0 :(得分:4)
经过一些研究,我终于找到了这个:https://connect.microsoft.com/VisualStudio/feedback/details/981900/profiler-does-not-respect-debugging-environment-variables-for-project
这似乎是一个已知问题,微软不会修复它。
似乎我唯一的选择是复制脚本作为预构建步骤。如果有人有更好的解决方案,我仍然有兴趣听到它!
答案 1 :(得分:0)
我在.sln文件附近创建了.bat文件,其中包含以下内容:
set PATH=$(MYPATH);%PATH%
your_solution.sln
它对我有用