在Visual Studio 2019中,是否可以在解决方案文件之外配置项目路径?

时间:2020-10-03 18:44:40

标签: visual-studio visual-studio-2019 csproj

我对正在处理的项目(主项目)有Visual Studio解决方案。该解决方案引用了主项目需要作为依赖项的另一个项目(依赖项项目)。

解决方案和主项目位于一个目录中:

/mycode/main_project/main_project.sln
/mycode/main_project/main_project.csproj

依赖项项目位于另一个目录中:

/mycode/dependency_project/dependency_project.csproj

这两个项目都在源代码控制下。我想为不在源代码控制下的主项目创建某种配置文件,以便另一个开发人员可以在他们想要的任何地方克隆这两个项目,并简单地编辑非源代码控制的配置文件以允许主项目的解决方案定位依赖项项目。

当前,主要解决方案使用相对路径查找依赖项:

../dependency_project/dependency_project.csproj

如果我强制所有开发人员都应将这两个项目克隆到同一目录中,则主解决方案将成功链接到依赖项项目,一切都会很顺利。但是,我希望另一个开发人员 可以将依赖项目放置在他们想要的任何地方。

Visual Studio 2019社区是否支持任何解决方案配置文件,这些文件可能会被版本控制忽略并用于解析依赖项项目的路径?

1 个答案:

答案 0 :(得分:1)

解决方案文件非常原始,不提供这种动态功能。但是,如果您不需要dependency_project来显示在IDE中,您仍然可以从main_project.csproj引用它,这确实为您提供了更多选择。即使项目没有出现在解决方案资源管理器中,它也应该可以正常构建。

例如,您可以通过环境变量引用它,如果未设置该变量,则使用默认的预期路径:

<PropertyGroup>
  <DependencyProjectPath Condition=" '$(DependencyProjectPath)' == ''>../dependency_project/dependency_project.csproj</DependencyProjectPath>
</PropertyGroup>
<ItemGroup>
  <ProjectReference Include="$(DependencyProjectPath)" />
</ItemGroup>

如果在打开解决方案之前设置了DependencyProjectPath环境变量(因为VS从启动它的地方继承了环境变量),它将覆盖此处的默认设置(基于Condition属性)

相关问题