Visual Studio 2019 MSBuild将$(SolutionDir)替换为“.”&引用;适用于文件系统中包含的项目,但不适用于Git子模块中包含的项目
Visual Studio 2019 MSBuild将$(SolutionDir)替换为“.”,用于文件系统中包含的项目,但不用于Git子模块中包含的项目 例如,下面的项目文件(Project0.csproj)有4个引用的项目Visual Studio 2019 MSBuild将$(SolutionDir)替换为“.”&引用;适用于文件系统中包含的项目,但不适用于Git子模块中包含的项目,msbuild,visual-studio-2019,git-submodules,visual-studio-macros,Msbuild,Visual Studio 2019,Git Submodules,Visual Studio Macros,Visual Studio 2019 MSBuild将$(SolutionDir)替换为“.”,用于文件系统中包含的项目,但不用于Git子模块中包含的项目 例如,下面的项目文件(Project0.csproj)有4个引用的项目 项目1和项目2作为Git子模块签出 项目3和项目4是在与项目0相同的回购协议上创建的 它们都是从$(SolutionDir)开始的,但是一旦VS构建了解决方案,项目3和4的$(SolutionDir)宏就会被替换为“.” 我怎样才能防止这种情况 <ItemGr
- 项目1和项目2作为Git子模块签出
- 项目3和项目4是在与项目0相同的回购协议上创建的
<ItemGroup>
<ProjectReference Include="$(SolutionDir)\Project1\Project1.csproj">
<Name>Project1</Name>
</ProjectReference>
<ProjectReference Include="$(SolutionDir)\Project2\Project2.csproj">
<Name>Project2</Name>
</ProjectReference>
<ProjectReference Include="..\Project3\Project3.csproj">
<Name>Project3</Name>
</ProjectReference>
<ProjectReference Include="..\Project4\Project4.csproj">
<Name>Project4</Name>
</ProjectReference>
</ItemGroup>
项目1
项目2
项目3
项目4
也许您可以将$(SolutionDir)\Project3\Project3.csproj
作为一个marco,然后将其添加到ProjectReference中。1.在属性组中添加$(SolutionDir)\Project3\Project3.csproj
,2。称之为:
@DylanZhu MSFT不走运,在关闭、重新打开解决方案并重建之后,VS 2019(最新更新)仍然将$(ReferencedProject)
宏替换为“.”