9

VS2010 中控制台应用程序的项目属性的调试选项卡允许我设置命令行参数以在调试时传递给项目。

我想设置一个路径参数,该路径特定于每个开发人员/机器,因为它是位于解决方案文件夹中的路径并且每个环境都不同。

对于构建前和构建后的事件,我可以使用诸如 之类的宏$(ProjectDir),但我找不到对命令行参数执行此操作的方法 - 有没有办法?只要不是太糟糕,黑客就可以了!

谢谢

4

2 回答 2

2

我还没有找到$(ProjectDir)在命令行参数中使用的方法,但是您可以通过以下方式访问项目中包含的文件:

  • 通过更改其“复制到输出目录”属性,告诉 Visual Studio 将特定文件复制到输出目录。
  • 将命令行参数从 更改$(ProjectDir)/FileNeededDuringRuntimeFileNeededDuringRuntime

这更像是一种 hack,因为它可能不涵盖使用变量的所有情况,但如果您只是引用几个文件,它可能会让您通过。

于 2012-08-02T14:31:44.783 回答
1

宏可用于 C++ 项目的命令行参数,请参阅:

如何在命令行参数中将解决方案文件夹作为参数传递(用于调试)?

您可以有一个空的 C++ 项目“设置为启动项目”并将其“配置属性 -> 调试 -> 命令”从“$(TargetPath)”(新项目的默认值)更改为“$(ProjectDir)..\OtherProjectRelativeDebugFolder\其他项目输出文件名.exe”。

由于 OtherProjectRelativeDebugFolder 和 OtherProjectsOutputFileName 是相对的,因此与位置无关,您应该可以接受。

你说:

只要不是太糟糕,黑客就可以了!

产生空 dll 的空项目(除非您找到阻止它的方法,例如在构建后删除)是否太糟糕了?

顺便提一句。C# 的“调试-> 命令行参数”中也没有解析环境变量。我将尝试设置一个环境变量,传递它的名称(因为它没有被解析)并在程序中读取它。传递名称旨在显示环境变量的来源,即项目设置。

编辑: 我希望找到一种方法将环境变量设置为宏的值,例如在构建事件中。一个简单的 shell“设置”命令不是持久的,所以它没有成功。相反,我能够使用相对路径作为工作文件夹来为我工作。我还找到了一种使用文件进行持久存储的解决方法: VS2010 - Project Macro Variables in Start Options Command Line Arguments

于 2013-12-05T13:09:06.220 回答