VS2017 15.7.1中Xamarin.Android F#模板构建失败求助
解决Win7下VS2017+Xamarin.Android构建F# Android项目时的FS0193错误
这个问题我之前帮不少开发者排查过,是VS2017 15.7.x版本搭配Xamarin.Android 8.3.x在Win7上运行F# Android项目时的一个已知兼容性问题,核心是F#类型提供器生成的临时动态链接库(就是报错里的ProvidedTypese4595d25-58bd-4f87-96fc-ec2d29402d62.dll)出现了生成或访问异常,下面是几个经过验证的解决方案:
- 清理并彻底重建项目:先关闭Visual Studio,找到你的项目文件夹,删除
bin和obj这两个目录(这两个是编译生成的临时文件目录,残留的文件可能导致冲突),然后重新打开Visual Studio,右键项目选择清理,再选择生成试试。 - 以管理员身份运行Visual Studio:Win7的UAC权限限制可能导致F#编译器无法在用户目录下生成或读取临时dll,右键Visual Studio图标选择
以管理员身份运行,再重新构建项目。 - 升级VS和Xamarin.Android版本:这个版本组合存在已知的类型提供器临时文件处理bug,建议你将Visual Studio 2017升级到15.9.x及以上的更新版本,同时把Xamarin.Android更新到对应兼容的版本(比如9.0+),后续版本已经修复了这个问题。
- 检查项目路径是否合规:确保你的项目路径中没有中文、空格或者特殊符号(比如
!@#$这类),F#编译器对包含特殊字符的路径处理容易出现异常,导致临时dll生成路径错误。如果有,把项目移动到一个纯英文、无空格的路径下再尝试构建。 - 手动指定临时文件目录:可以在项目属性中自定义F#编译器的临时文件路径:右键项目→
属性→F#编译器→其他选项,添加参数--tempfile:C:\Temp\FSharpTemp(先确保C盘下有Temp文件夹,没有的话手动创建),这样编译器会把生成的临时dll放到指定目录,避免默认路径的权限或路径长度问题。
内容的提问来源于stack exchange,提问作者mastracu
相关产品推荐
相关产品推荐

