Jul*_*ian 7 c# csproj visual-studio visual-studio-2017 csproj-user
在 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>
Run Code Online (Sandbox Code Playgroud)
直接在 .csproj 文件中编辑而不转义字符,如下所示:
<?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>$(SolutionDir)..\..\..\..\mydir</StartWorkingDirectory>
<StartProgram>$(SolutionDir)..\..\dir\myapplication.exe</StartProgram>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
在 $(SolutionDir) 之后也不需要斜线
我测试了所有的想法。不幸的是,没有一个答案有效或没有足够的细节,所以我添加了自己的答案。
相对路径确实有效,但StartProgram和StartWorkingDirectory有不同的初始目录!
StartProgram在解决方案文件(.sln)所在目录中启动
所以我现在为我工作:
..\mydir\myapplication.exe..\..\..\..\..\mydir与 相同的目录myapplication.exe)| 归档时间: |
|
| 查看次数: |
2275 次 |
| 最近记录: |