【发布时间】:2021-07-28 15:09:33
【问题描述】:
我正在开发 Xamarin.Forms 应用程序。几天来,Visual Studio 一直给我一个错误,导致它无法编译 iOS 项目。这是错误:
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Local.targets(73,3): error MSB4018: The "UnpackLocalFrameworks" task failed unexpectedly.
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Local.targets(73,3): error MSB4018: System.IO.DirectoryNotFoundException: Could not find a part of the path.
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Local.targets(73,3): error MSB4018: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Local.targets(73,3): error MSB4018: at System.IO.__Error.WinIOError()
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Local.targets(73,3): error MSB4018: at System.IO.File.InternalMove(String sourceFileName, String destFileName, Boolean checkHost)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Local.targets(73,3): error MSB4018: at Ionic.Zip.ZipEntry.MoveFileInPlace(Boolean fileExistsBeforeExtraction, String targetFileName, String tmpPath, Boolean checkLaterForResetDirTimes) in C:\projects\dotnetzip-semverd\src\Zip.Shared\ZipEntry.Extract.cs:line 867
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Local.targets(73,3): error MSB4018: at Ionic.Zip.ZipEntry.InternalExtractToBaseDir(String baseDir, String password, ZipContainer zipContainer, ZipEntrySource zipEntrySource, String fileName) in C:\projects\dotnetzip-semverd\src\Zip.Shared\ZipEntry.Extract.cs:line 733
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Local.targets(73,3): error MSB4018: at Ionic.Zip.ZipFile._InternalExtractAll(String path, Boolean overrideExtractExistingProperty) in C:\projects\dotnetzip-semverd\src\Zip.Shared\ZipFile.Extract.cs:line 259
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Local.targets(73,3): error MSB4018: at Ionic.Zip.ZipFile.ExtractAll(String path, ExtractExistingFileAction extractExistingFile) in C:\projects\dotnetzip-semverd\src\Zip.Shared\ZipFile.Extract.cs:line 222
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Local.targets(73,3): error MSB4018: at Xamarin.iOS.Local.Tasks.UnpackLocalFrameworks.Execute() in C:\A\1\34\s\src\MSBuild\Xamarin.iOS.Local.Tasks\Tasks\UnpackLocalFrameworks.cs:line 61
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Local.targets(73,3): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Local.targets(73,3): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
我不知道C:\projects\dotnetzip-semverd\src\Zip.Shared路径是什么。
一些信息:
- Microsoft Visual Studio Professional 2019 版本 16.10.4(上周更新)
- Microsoft Windows 10 专业版(内部版本 19041)
Xamarin.iOS.Local.targets 文件内容在错误行 (73):
<UnpackLocalFrameworks
ReferencedAssemblies="@(AssembliesWithFrameworks)"
IntermediateOutputPath="$(DeviceSpecificIntermediateOutputPath)">
<Output TaskParameter="Frameworks" ItemName="_UnpackedFramework" />
</UnpackLocalFrameworks>
我不知道我还能提供什么更多信息。
【问题讨论】:
-
您的项目中是否使用了 dotnetzip 包?路径好像和这个github.com/haf/DotNetZip.Semverd有关
-
你好 Dylan,我不使用这个库。它没有出现在项目引用中。
-
您的代码位于什么路径?这可能是创建的路径超出 Windows 允许的限制的问题。我通常将我的项目放在
D:\\dev以帮助防止这种情况。您还可以增加注册表中的路径字符限制。堆栈跟踪中的库错误是来自 Xamarin iOS 构建的错误,因此这是您使用的工具的依赖项 仅供参考:) -
与路径无关,长度小于100个字符。
-
我解决了删除 obj 和 bin 文件夹的问题
标签: xamarin.forms xamarin.ios msbuild visual-studio-2019