我有一个由来自不同路径的不同项目组成的解决方案。我们使用 vanilla 文件夹中的基础项目,然后从特定目录中项目特定项目。例子:
specific project directory: c:\proj\specific
vanilla project directory: c:\proj\vanilla
vanilla project x path: c:\proj\vanilla\repo\src\project\x\code\
在每个 vanilla 项目中,我们都有一个指向根目录的发布配置文件,并包含一个 publishsettings.targets 文件,该文件具有项目应该发布的实际目标。通过使用这种结构,我们可以拥有很多项目并使用单个目标发布它们,因此我们不需要在所有项目中更改该目标。
我们现在发现在使用这些 vanilla 项目时存在问题,因为发布配置文件中使用的路径是相对于 vanilla 目录的,实际上我们需要它相对于特定的项目目录(解决方案目录)。
在我们的发布配置文件中,我们有:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\..\..\..\..\publishsettings.targets" />
<PropertyGroup>
...
</PropertyGroup>
</Project>
所以我们需要一种方法来指定这个路径的实际 sln 目录,这样我们就可以包含正确的目标,所以当我们从 Visual Studio 发布时,它会发布到特定的项目,而不是普通项目。
我试图找到一个“MSBuildSolutionDirectory”,但它似乎只是一个可以使用的“MSBuildProjectDirectory”变量。
有谁知道我可以找到路径的方法
Project="c:\proj\vanilla\publishsettings.targets"
实际上是
Project="c:\proj\specific\publishsettings.targets"
通过使用一些 msbuild 或自定义变量而不是硬编码它?
我需要它与 vanilla(因为我有 vanilla.sln)和特定项目(因为我有 X.sln)一起工作。