【发布时间】:2017-10-02 13:26:47
【问题描述】:
我有 foo.csproj,
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup Label="Globals">
<ExtPath>$(SolutionDir)\WpfNetStandardSample\CustomProjectSystem\</ExtPath>
</PropertyGroup>
<Import Project="$(ExtPath)CustomProject.props" />
</Project>
引用自解决方案文件 bar.sln。
要从持续集成服务器恢复我的 NuGet 包,我运行
msbuild /t:restore bar.sln
我得到了错误:
“C:\Users\phelan\workspace\bar\bar.sln”(恢复目标)(1)-> "C:\Users\phelan\workspace\bar\foo\foo.csproj" (_IsProjectRestoreSupported 目标) (11) -> C:\Users\phelan\workspace\bar\foo\foo.csproj(7,3): 错误 MSB4019:导入的项目 “C:\WpfNetStandardSample\CustomProjectSystem\CustomProject.props”原为 未找到。确认声明中的路径是 正确,并且该文件存在于磁盘上。
主要问题
SolutionDir 如何以及为什么解析为 C:\ 而不是解决方案文件所在的目录?
注意事项
- 整个解决方案都是在 Visual Studio 中构建的。
- 运行
msbuild foo.sln构建整个解决方案(假设 NuGet 包已恢复) - MSBuild 版本为 15.3.409.57025
- 解决方案是混合项目,一些使用packages.config,一些使用PackageReference。使用 PackageReference 的项目有些是 dotnetstandard 库,有些是 net461 库。
- 似乎有各种关于如何恢复 NuGet 包的建议
我的混合设置类型的正确流程是什么?
用于重现错误的 GitHub 存储库
【问题讨论】:
-
我已经向github.com/dotnet/sdk/issues/1623提交了一个bug
标签: .net msbuild continuous-integration visual-studio-2017 .net-standard-2.0