Msbuild $(SolutionDir)和$(SolutionPath)在Visual Studio 2017中工作不正常

Msbuild $(SolutionDir)和$(SolutionPath)在Visual Studio 2017中工作不正常,msbuild,.net-core,visual-studio-2017,Msbuild,.net Core,Visual Studio 2017,我试图在Visual Studio 2017中的.csproj文件中使用$(SolutionDir)或$(SolutionPath),但它们无法按预期工作 在MSBuild 15类型的项目(例如,.NET Core,.NET标准类库)中,在中使用$(SolutionDir)是可行的,但$(ProjectDir)只会生成一个空字符串 在其他元素中(例如,UsingTask中的AssemblyFile)$(SolutionDir)生成一个空字符串,$(SolutionPath)提供当前项目目录 这已

我试图在Visual Studio 2017中的
.csproj
文件中使用
$(SolutionDir)
$(SolutionPath)
,但它们无法按预期工作

在MSBuild 15类型的项目(例如,.NET Core,.NET标准类库)中,在
中使用
$(SolutionDir)
是可行的,但
$(ProjectDir)
只会生成一个空字符串

在其他元素中(例如,
UsingTask
中的
AssemblyFile
$(SolutionDir)
生成一个空字符串,
$(SolutionPath)
提供当前项目目录


这已在上向Microsoft报告,但问题已被标记为已解决,原因是问题已在RTM中修复,尽管有几个人报告发布的版本存在问题。

这似乎是VS2017的问题,您可能需要Visual Studio 2017 RC 3。我不支持发布候选版本。我从2017年4月10日开始使用VS 15.1(26403.3)。即使是从2017年4月17日开始的最新版本15.1(26403.07),它也不起作用。您在哪里使用它?在带有
任务的自定义目标内。经典csproj或“sdk风格”(通常为.net core)csproj?我意识到,如果我在PostBuildEvent中的某个命令中使用$(SolutionDir),它可以正常工作,但如果我尝试在某个属性的值中使用它(例如UsingTask中的AssemblyFile),它就无法工作@net核心csproj。