微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用Chef在Windows上安装Xamarin

我使用ChefconfigurationTeamCity构build代理(Windows Server 2012 VM),并且我需要为Visual Studio / Android构build安装Xamarin。 对于其他安装程序,我通常使用/h , /help , /?调用它/? -? , -h和--help直到我得到一个使用对话框,告诉我命令行参数。 我一直无法找出XamarinInstaller.exe的命令行参数,但是,当我启动它像这样:

XamarinInstaller.exe /quiet /norestart

因为这些都是常见的惯例,似乎它只是坐在那里,什么都不做。 它应该是下载的东西(这就是当我用GUI启动时),但是当我在任务pipe理器中查看以太网使用情况时,没有什么事情发生。 我不知道它在哪里写日志或如何知道它是否失败。 它失败后似乎不会退出

这是我的厨师代码

xamarinTargets = 'C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.CSharp.targets' xamarinInstaller = 'C:\Repo\Xamarin\XamarinInstaller.exe' execute "Xamarin" do command "#{xamarinInstaller} /quiet /norestart" not_if { ::File.exist?(xamarinTargets) } end

我如何无头调用Xamarin安装程序? 如何与厨师安装?

如何模块化PowerShell脚本

使用厨师添加一个ssh密钥

使用厨师时,主pipe打开文件限制不会改变

指定厨师包的返回代码

与厨师创buildWindows用户,并将用户添加到本地pipe理员组

如何在使用Chef和Vagrant时禁用认的Nginx网站?

厨师用户资源不会更新现有用户的主目录,如果它已经存在

厨师:我如何检查服务是否安装?

在Windows主机上使用Vagrant运行厨师食谱:SSH问题

Ohai未能确定cygwin中的os_version

这是我必须做的,而且有些是不吉利的。

通过Chocolatey使用chocolatey食谱中的chocolatey_package资源安装android-sdk和xamarin-visualstudio

验证Xamarin安装正常工作。

将预制的android-sdk.zip解压到$HOMEAppDataLocalAndroid中,以获得我需要的所有安装在Android SDK *

验证Android SDK安装是否按预期工作。

创建一个注册表项,将Xamarin的Visual Studio集成指向相应的Android SDK。

这里是厨师代码

xamarinTargets = 'C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.CSharp.targets' chocolatey_package 'android-sdk' chocolatey_package 'xamarin-visualstudio' ruby_block "Verify Xamarin MSBuild targets exist" do block do if not ::File.exist?(xamarinTargets) raise "Did not find #{xamarinTargets} which was supposed to have been created by the Xamarin install" end end end homeDir = "C:\Users\#{ENV['User']}" androidDir = "#{homeDir}\AppData\Local\Android" androidSdk = "#{androidDir}\android-sdk" androidSdkZip = "C:\Repo\Android\android-sdk.zip" adbExe = "#{androidSdk}\platform-tools\adb.exe" seven_zip_archive "Android SDK API level 15" do path androidDir source androidSdkZip overwrite true not_if { ::File.exist?(adbExe) } end ruby_block "Verify Android adb.exe exists" do block do if not ::File.exist?(adbExe) raise "Did not find #{adbExe} which was supposed to have been created by the Android SDK install" end end end registry_key 'HKEY_USERS\S-1-5-18\Software\Novell\Mono for Android' do values [{ :name => "AndroidSdkDirectory",:type => :string,:data => androidSdk }] recursive true action :create end

*我无法为我的生活得到android update sdk通过厨师调用时工作。 看起来,Android SDK管理器不会运行,甚至是非图形的,除非它能检测到它正在被用户运行?! 不知道,但最后在绝望中,我手动运行命令安装必要的SDK(我需要API级别15),并建立工具:

android update sdk --no-ui --all --filter "tools,platform-tools,build-tools-23.0.3,android-15"

然后我拿到了所得到的$HOMEAppDataLocalAndroidandroid-sk目录,并将其压缩以产生上述的“预制的android-sdk.zip ”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐