VS2013 - 如何使用外部程序在C#项目的命令行参数中传递解决方案文件夹$(SolutionDir)

Blu*_*rin 6 c# visual-studio-2013

我正在为Excel构建一个C#添加.为了调试它,我需要使用命令行参数启动Excel.exe,该参数包含addin的Debug或Release路径.

例如:

  • 启动外部程序:C:\ Program Files\Microsoft Office\Office15\EXCEL.EXE
  • 命令行参数"C:\ Dev\Project1\Project1\bin\Debug\Project1-AddIn64.xll"

但是,我想用VS中的C++项目替换"C:\ Dev\Project1\Project1\bin\Debug"等效$(SolutionDir).有没有办法做到这一点 ?如果它不可行,有没有办法解决这个问题?

编辑:请支持我,并通过投票提出以下想法在VS中添加:http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6350738-support-for-macros-in-debugging-命令行-argum

Ern*_*rno 5

实际上,宏不能在Start Options |中使用 命令行参数

我看到两个解决方案:

  1. 由于当前文件夹设置为$(TargetDir)当您开始:你可以参考这样的解决方案文件夹的应用程序..\..\..\,如果外部程序接受的相对路径.(我不太清楚为什么你会想要引用解决方案文件夹,指的是输出/目标文件夹对我来说更有意义)

  2. 在Post Build事件中(取消注册)并在部署组件时注册组件的方式(正确的设置).这样,您只需在"开始操作"中引用Excel.这也立即增加了测试更类似于生产的方案的好处.


nev*_*ets 1

我想您可以利用构建后事件来读取您的文件。@HansPassant 在VS2010 - Project Macro Variables in Start Options Command Line Arguments中解释了这一点。

简短的引用:

一种可能的解决方法是构建后事件写入您在程序中读取的文件。就像 echo $(ProjectName) > "$(TargetDir)cmdargs.txt

您可以替换cmdargs.txt为您想要的适当文件。