【问题标题】:Project path or other macro in command-line parameters for console project in VS2010VS2010中控制台项目命令行参数中的项目路径或其他宏
【发布时间】:2012-08-01 23:02:36
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: visual-studio-2010 console-application projects-and-solutions


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      How to pass solution folder as parameter in command line arguments (for debug)?

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

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

      你说:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-04
        相关资源
        最近更新 更多