【发布时间】:2019-08-14 08:40:09
【问题描述】:
在 C# 项目中,我尝试对“启动外部程序”和“工作目录”使用相对路径。
我尝试了以../ 开头的相对路径和以$(SolutionDir) / $(ProjectDir) 开头的相对路径
所有尝试都会弹出错误消息。 (找不到外部程序/您输入的工作目录不存在) - 见截图。
是否可以使用相对路径以及如何使用?我也在 msdn 上搜索过,但几乎没有关于 csproj.user 文件的信息。
我们需要这个,因为我们不希望为所有开发人员强制使用文件夹结构。
这存储在 csproj.user 文件 (myproject.csproj.user) 中,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ProjectFiles</ProjectView>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<StartAction>Program</StartAction>
<StartWorkingDirectory>%24%28SolutionDir%29\..\..\..\..\mydir</StartWorkingDirectory>
<StartProgram>%24%28SolutionDir%29\..\..\dir\myapplication.exe</StartProgram>
</PropertyGroup>
</Project>
【问题讨论】:
-
它应该可以工作,但是 1) 您必须取消转义 StartProgram 值,使其在 Xml 中显示。 2)一旦你完成了,确保 $(SolutionDir) 真的是你认为的那样(它不是项目目录)。为确保这一点,您可以使用 sysinternals 中的 ProcMon 等工具,对 devenv.exe 进行过滤,您应该会看到它在哪里寻找确切的位置。
-
请解释反对意见/如何改进这个问题
-
我给了你一个赞成票 - 你尝试我的答案了吗?
-
还没有。本周将尝试:)
标签: c# visual-studio visual-studio-2017 csproj csproj-user