我正在为Excel构建一个C#添加。为了调试它,我需要使用包含插件的Debug或Release路径的命令行参数启动Excel.exe。
例如:
但是,我想将“C:\ Dev \ Project1 \ Project1 \ bin \ Debug”替换为VS中C ++项目的等效$(SolutionDir)。有没有办法做到这一点 ?如果不可行,有办法解决这个问题吗?
编辑:请支持我,并通过投票表达以下想法在VS中添加:http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6350738-support-for-macros-in-debugging-command-line-argum
答案 0 :(得分:5)
实际上,宏不能在“开始选项”中使用命令行参数
我看到两个解决方案:
当您启动应用程序时,当前文件夹设置为$(TargetDir)
,您可以参考解决方案文件夹,如下所示:..\..\..\
如果是外部程序接受相对路径。 (我不太清楚为什么你会想要引用解决方案文件夹,引用输出/目标文件夹对我来说更有意义)
在Post Build事件中(取消注册)并在部署组件时注册组件的方式(正确设置)。这样,您只需在“开始操作”中引用Excel。这也立即增加了测试更类似于生产的方案的好处。
答案 1 :(得分:1)
我猜你可以利用post-build事件来读取你的文件。 @HansPassant在VS2010 - Project Macro Variables in Start Options Command Line Arguments中解释了它。
简短的引用:
可能的解决方法是生成后事件,该事件会写入您在程序中读取的文件。像echo $(ProjectName)> " $(TARGETDIR)cmdargs.txt
您可以将cmdargs.txt
替换为您想要的相应文件。
答案 2 :(得分:0)
这不完全是一个修复,但这可能会帮助一些人。如果您从项目模板“Visual C#/ .NET Core / Console App”而不是“Visual C#/ Windows / Console App”创建项目,则支持此功能。当我在“项目属性”窗口的“调试”选项卡上的“应用程序参数”字段中放入“$(SolutionDir)”时,它将在运行时展开。请注意,您将需要Visual Studio 2015 Update 3或更高版本。
答案 3 :(得分:0)
您可以使用命令字段中的宏。我使用 procmon.exe 来查看 VS 正在寻找什么,实际上我可以使用 $(SolutionDir)\..\Debug\thetoolname.exe
因为我的解决方案不在根目录中。
我使用的是 VS2019,因此 AFAIK 支持此版本,但很可能在较低版本中受支持。只需使用 procmon 来检查 VS 尝试解析的路径。