在我的项目中运行dotnet build
时,我遇到了以下错误:
/path/to/repo/Toolkit/My.Company.Toolkit.Platform.Android/My.Company.Toolkit.Platform.Android.csproj(91,3): error MSB4019: The imported project "/usr/local/share/dotnet/sdk/7.0.102/Xamarin/Android/Xamarin.Android.CSharp.targets" was not found. Confirm that the expression in the Import declaration "/usr/local/share/dotnet/sdk/7.0.102//Xamarin/Android/Xamarin.Android.CSharp.targets" is correct, and that the file exists on disk.
/path/to/repo/Toolkit/My.Company.Toolkit.Platform.iOS/My.Company.Toolkit.Platform.iOS.csproj(195,3): error MSB4019: The imported project "/usr/local/share/dotnet/sdk/7.0.102/Xamarin/iOS/Xamarin.iOS.CSharp.targets" was not found. Confirm that the expression in the Import declaration "/usr/local/share/dotnet/sdk/7.0.102//Xamarin/iOS/Xamarin.iOS.CSharp.targets" is correct, and that the file exists on disk.
我确认/usr/local/share/dotnet/sdk/7.0.102/Xamarin/iOS/Xamarin.iOS.CSharp.targets
不存在。
但我不知道怎么安装。
Xamarin的参考在csproj中定义如下<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
。
当我从Visual Studio构建时,我没有任何问题。如果我试图重新安装Xamarin,它会说它已经安装了。
我在MacOS上。
- [更新]*
我卸载了所有的东西(VisualStudio、SDK/Runtime、DotNet等)。只安装了VisualStudio 2022 for Mac。
➜ ~ dotnet --info
.NET SDK:
Version: 7.0.102
Commit: 4bbdd14480
Runtime Environment:
OS Name: Mac OS X
OS Version: 13.1
OS Platform: Darwin
RID: osx.13-arm64
Base Path: /usr/local/share/dotnet/sdk/7.0.102/
Host:
Version: 7.0.2
Architecture: arm64
Commit: d037e070eb
.NET SDKs installed:
6.0.405 [/usr/local/share/dotnet/sdk]
7.0.102 [/usr/local/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.13 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.13 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
Not set
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
现在,如果我尝试在终端中构建项目,我仍然会遇到同样的错误。但如果我尝试从Visual Studio中构建它,我会遇到不同的错误。
我在生成输出中遇到此错误
Target RazorGenerateComponentDeclaration:
/usr/local/share/dotnet/dotnet exec "/Users/redacted/Library/Caches/VisualStudio/17.0/MSBuild/36265_3/Sdks/Microsoft.NET.Sdk.Razor/build/netstandard2.0/../../tools/netcoreapp3.0/rzc.dll" generate
-s
/Users/redacted/Developer/repositories/bcee/Toolkit/MyCompany.Toolkit.Platform.Web/_Imports.razor
-r
_Imports.razor
-o
/Users/redacted/Developer/repositories/bcee/Toolkit/MyCompany.Toolkit.Platform.Web/obj/Debug/netstandard2.1/RazorDeclaration/_Imports.razor.g.cs
-k
component
-p
/Users/redacted/Developer/repositories/bcee/Toolkit/MyCompany.Toolkit.Platform.Web
-t
obj/Debug/netstandard2.1/MyCompany.Toolkit.Platform.Web.RazorComponents.declaration.json
-v
3.0
-c
Default
--root-namespace
MyCompany.Toolkit.Web
--csharp-language-version
8.0
--generate-declaration
The application to execute does not exist: '/Users/redacted/Library/Caches/VisualStudio/17.0/MSBuild/36265_3/Sdks/Microsoft.NET.Sdk.Razor/build/netstandard2.0/../../tools/netcoreapp3.0/rzc.dll'
/Users/redacted/Library/Caches/VisualStudio/17.0/MSBuild/36265_3/Sdks/Microsoft.NET.Sdk.Razor/build/netstandard2.0/Microsoft.NET.Sdk.Razor.Component.targets(106,5): error : rzc generate exited with code 129.
Done building target "RazorGenerateComponentDeclaration" in project "MyCompany.Toolkit.Platform.Web.csproj" -- FAILED.
Done building project "MyCompany.Toolkit.Platform.Web.csproj" -- FAILED.
Build FAILED.
工具目录不存在。
2条答案
按热度按时间yhuiod9q1#
一开始,你说:
当我从Visual Studio构建时,我没有任何问题。
原因应该是当您从Visual Studio生成时。您的项目使用的框架是.netstandard 2.0。您可以在**/usr/local/share/dotnet/sdk**中检查项目.csproj文件和SDK。
另外,你可以检查this case which has the similar error as yours。根据它,如果.net版本与xamarin不兼容,也会得到这个错误。
dotnet/sdk/7.0.102
应该是与.net maui兼容的.net 7,而不是xamarin。所以你不能使用dotnet构建项目。您可以尝试找到MSBuildExtensionsPath的正确值,并根据this case which is about set the project's MSBuildExtensionsPath在android和ios .csproj文件中设置它。
最后,您可以在this case which has the same error message中尝试该解决方案。
bjp0bcyl2#
Xamarin工具链是基于Mono构建的,因此您在VS for Mac中触发的所有内容都由MSBuild for Mono友好地处理(在Mac终端,您可以使用
msbuild --version
了解更多信息)。然而,
dotnet build
是专门为基于.NET Core的项目设计的,所以默认情况下它不能处理Xamarin项目,只能处理.NET MAUI。由于遗留的Xamarin项目即将消失,您应该尽快开始迁移到MAUI,
https://dotnet.microsoft.com/en-us/platform/support/policy/xamarin