我想用c#从事一个开源项目。
当我想要重建项目时,我得到:
Das Projekt "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\16.0\Bin\Microsoft.CSharp.targets" wurde von "C:\Program Files\dotnet\sdk\2.1.701\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.targets" nicht in (41,3) importiert, weil die Datei nicht vorhanden ist.
什么是英语
The project "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\16.0\Bin\Microsoft.CSharp.targets" was not imported by "C:\Program Files\dotnet\sdk\2.1.701\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.targets" because the file is missing.
我在文件夹中: C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ 我只有子文件夹:
15.0
当前
Microsoft。
Visual Studio Community 2019版本16.1.6..NET Framework版本4.7.03056
所以我认为我需要以某种方式升级MSBuild 15.0-> 16.0。
我尝试过的事情:
从以下位置安装Visual Studio的构建工具:https://visualstudio.microsoft.com/de/downloads/
从https://github.com/Microsoft/msbuild克隆MBSBuild 我可以建立这个项目。但在C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ 16
感谢您的帮助。 BerndGit
PS:我正在尝试编译的项目 https://github.com/BerndGit/Kamban/tree/feature/refactoring
更新点网信息
dotnet --info
.NET Core SDK (gemäß "global.json"):
Version: 2.1.701
Commit: 8cf7278aa1
Laufzeitumgebung:
OS Name: Windows
OS Version: 10.0.17134
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\2.1.701\
Host (useful for support):
Version: 2.1.12
Commit: ccea2e606d
.NET Core SDKs installed:
2.1.700 [C:\Program Files\dotnet\sdk]
2.1.701 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
PM>
答案 0 :(得分:1)
请检查其在Kamban.csproj中导入Microsoft.CSharp.targets
的方式:
<LanguageTargets>$(MSBuildExtensionsPath)\$(VisualStudioVersion)\Bin\Microsoft.CSharp.targets</LanguageTargets>
根据Kamban.csproj
的内容,它使用$(VisualStudioVersion)
来定位Microsoft.CSharp.targets
文件。它在VS2017和更早版本中效果很好,但在VS2019中不建议使用,因为msbuild的位置在VS2019中进行了更改。
请参见this document:从VS2019预览开始,MSBuild将使用“当前”而不是主要版本号作为其路径的一部分。
因此,构建过程所需的Microsoft.CSharp.targets
文件实际上存在于路径...\2019\Community\MSBuild\Current\Bin\Microsoft.CSharp.targets
中,而不是...\2019\Community\MSBuild\16.0\Bin\Microsoft.CSharp.targets
中。
这就是为什么它在错误消息中说file is missing
,导致它试图从错误的路径中找到目标文件的原因。
一种解决方法:
使用$(MSBuildToolsVersion)
而不是$(VisualStudioVersion)
查找.targets文件。
打开并编辑Kamban.csproj文件,将LanguageTargets
的值更改为:
<LanguageTargets>$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Bin\Microsoft.CSharp.targets</LanguageTargets>
然后,构建引擎可以获得获取丢失文件的正确路径。
(注意:此更改适用于VS2017和VS2019)
另外:我已经检查了开源解决方案,似乎是针对.net框架和.net标准,我不确定为什么此错误消息来自SDK.targets,建议您在Visual Studio IDE
或msbuild command-line。