6

VS2010中控制檯應用程序的項目屬性的調試選項卡允許我設置命令行參數,以便在調試時傳遞給項目。VS2010中控制檯項目的命令行參數中的項目路徑或其他宏

我想設置一個參數,這是一個路徑,路徑是特定於每個開發人員/機器的,因爲它是駐留在解決方案文件夾中的路徑,每個環境都不相同。

前和後生成事件,我可以使用宏如$(ProjectDir),但我不能找到一種方法來對命令行參數做到這一點 - 有什麼辦法?黑客沒事,只要它不太可怕!

感謝

回答

2

我還沒有找到一個方式,使用命令行參數$(ProjectDir),但是你可以通過訪問包含在項目中的文件:

  • 告訴Visual Studio中的特定文件複製到輸出目錄通過更改其「複製到輸出目錄」屬性。
  • 將您的命令行參數從$(ProjectDir)/FileNeededDuringRuntime更改爲FileNeededDuringRuntime

這更像是一種黑客行爲,因爲它可能不包含所有使用該變量的情況,但如果您只是引用一些文件,它可能會引起您的注意。

1

宏可以在命令行參數的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「set」命令不是持久的,所以它沒有解決。相反,我能夠使用相對路徑作爲工作文件夾來爲我工作。我還發現了一種解決方法,它使用文件進行持久性存儲: VS2010 - Project Macro Variables in Start Options Command Line Arguments

相關問題