如何修改VS 2017安装包目录?实现Xamarin与Android Studio共用SDK
解决Xamarin(VS2017)与Android Studio共用Android SDK及路径问题
我之前帮朋友处理过一模一样的场景,整理了一套亲测有效的操作步骤,完美解决SDK路径冲突和磁盘空间浪费的问题:
一、迁移Android SDK到无空格路径
Android Studio的NDK组件确实不支持带空格的路径,所以第一步要把VS默认安装的SDK迁移到无空格目录,比如C:\Android\android-sdk:
- 先关闭VS2017和Android Studio,确保没有任何进程在占用SDK目录
- 复制默认路径
C:\Program Files (x86)\Android\android-sdk下的所有内容到新路径(比如C:\Android\文件夹内),复制完成后先保留原目录,等验证没问题再删除 - 接下来需要让两个IDE都指向这个新路径
二、修改VS2017的Android SDK路径
打开VS2017进行配置:
- 点击顶部菜单栏的
工具->选项 - 在弹出窗口里展开
Xamarin->Android设置 - 在
Android SDK位置处点击浏览,选择刚才迁移的新路径C:\Android\android-sdk,点击确定保存即可
三、修改VS2017的包安装目录
VS2017默认会把很多安装包存在C盘,修改方法如下:
- 找到VS2017的安装目录(默认是
C:\Program Files (x86)\Microsoft Visual Studio\2017\你的版本,比如Community) - 进入该目录下的
Common7\IDE文件夹,找到devenv.exe.config文件,用记事本或代码编辑器打开 - 在
<configuration>节点内添加以下配置(把路径改成你想要的无空格目录,比如C:\VS2017_Packages):
<configSections> <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <section name="Microsoft.VisualStudio.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> </sectionGroup> </configSections> <userSettings> <Microsoft.VisualStudio.Settings> <setting name="ComponentCacheDir" serializeAs="String"> <value>C:\VS2017_Packages</value> </setting> </Microsoft.VisualStudio.Settings> </userSettings>
- 保存文件后重启VS2017,后续新安装的包就会自动存到你指定的目录了
四、配置Android Studio指向新SDK路径
打开Android Studio完成配置:
- 点击
File->Settings(Windows/Linux)或者Android Studio->Settings(Mac) - 在设置窗口里展开
Appearance & Behavior->System Settings->Android SDK - 在
Android SDK Location处点击Edit,选择新的SDK路径C:\Android\android-sdk,点击Next完成配置 - 额外验证NDK路径:切换到
SDK Tools标签,勾选Show Package Details,找到NDK相关选项,确认它的安装路径在新SDK目录下的ndk-bundle(或你指定的NDK子目录),确保没有空格
五、验证共用效果
- 在VS2017创建一个简单的Xamarin Android项目,编译运行,确认能正常部署
- 在Android Studio创建一个简单的Java Android项目,编译运行,确认无路径相关报错
- 查看新的SDK目录,两个IDE下载的SDK组件会共用同一目录,不会重复占用磁盘空间
内容的提问来源于stack exchange,提问作者geneLocated
相关产品推荐
相关产品推荐

