トップ回答者
Visual Studio 2015のオフラインインストーラが作成できない

質問
-
以下のコマンドでVisual Studio 2015のオフラインインストーラを作成しようとしましたが
ja_visual_studio_community_2015_with_update_3_x86_x64_web_installer_8922964.exe /layout s:\vc14\visual_studio_community_2015_with_update_3
以下のエラーで終了してしまいました。
[1CEC:0F00][2018-01-02T19:30:52]i000: SI: 製品のエントリ 'PowerShellToolsV1' を処理しています。 [1CEC:0F00][2018-01-02T19:30:52]i000: SI: ファイルをダウンロードしています: 'http://go.microsoft.com/fwlink/?LinkID=616995' [1CEC:0F00][2018-01-02T19:30:59]i000: SI: ファイル 'http://go.microsoft.com/fwlink/?LinkID=616995' を場所 's:\vc14\visual_studio_community_2015_with_update_3\OfflineCache\installers\PowerShellToolsV1\en\0\items-itemName=AdamRDriscoll.PowerShellToolsforVisualStudio2015' にダウンロードしました [1CEC:0F00][2018-01-02T19:30:59]i000: SI: Certificate not valid for file:s:\vc14\visual_studio_community_2015_with_update_3\OfflineCache\installers\PowerShellToolsV1\en\0\items-itemName=AdamRDriscoll.PowerShellToolsforVisualStudio2015 [1CEC:0F00][2018-01-02T19:30:59]e000: SI: System.ApplicationException: ダウンロードしたファイルの署名の確認に失敗しました。改ざんされている可能性があります 場所 Microsoft.Web.PlatformInstaller.CommandLine.Offline.InstallerProductTask.ThrowOnDownloadFailedTrustVerification(String downloadedPath) 場所 Microsoft.Web.PlatformInstaller.CommandLine.Offline.InstallerProductTask.Execute(OfflineCacheSnapshot snapshot, String offlineFeedPath, ProductEntry entry, XmlNamespaceManager namespaceManager, ILogger logger, IEnumerable`1& errorMessages) 場所 Microsoft.Web.PlatformInstaller.CommandLine.Offline.Tasks.OfflineTaskManager.AddProduct(OfflineCacheSnapshot snapshot, String onlineFeedPath, String offlineFeedPath, String productId, ILogger logger, Func`1 checkIfUserCanceled, IEnumerable`1& errorMessages) 場所 Microsoft.Web.PlatformInstaller.CommandLine.Offline.OfflineCacheManager.SyncProducts(UpdateMode updateMode, ICollection`1 productIds, String parent, String callerBaseDirectory, Func`1 checkIfUserCanceled) [1CEC:0F00][2018-01-02T19:30:59]i000: MUX: Some operations failed, see the detailed error messages for more information: [1CEC:0F00][2018-01-02T19:30:59]e000: MUX: 製品 'PowerShellToolsV1' のダウンロードに失敗しました。ダウンロードしたファイルの署名の確認に失敗しました。改ざんされている可能性があります [1CEC:0F00][2018-01-02T19:30:59]i000: MUX: Set Result: Return Code=1603 (0x643), Error Message=製品 'PowerShellToolsV1' のダウンロードに失敗しました。ダウンロードしたファイルの署名の確認に失敗しました。改ざんされている可能性があります, Result Detail=製品 'PowerShellToolsV1' のダウンロードに失敗しました。ダウンロードしたファイルの署名の確認に失敗しました。改ざんされている可能性があります, Vital=False, Package Action=DownloadThirdParty, Package Id=VSSecondaryInstaller_box
[1CEC:0F00][2018-01-02T19:31:03]i000: MUX: Source confirmed [1CEC:06D4][2018-01-02T19:31:03]i000: MUX: Apply Complete: Disk Space Used in bytes for Installation: MaxAppDrive: 0 MaxSysDrive: 58056704 AppDrive: 0 SysDrive: 26238976 [1CEC:06D4][2018-01-02T19:31:03]i000: MUX: Free Disk Space after install: SystemDrive D:\ 68490907648 bytes AppDrive D:\ 68490907648 bytes [1CEC:06D4][2018-01-02T19:31:03]i000: MUX: Go to Finished page. [1CEC:06D4][2018-01-02T19:31:03]i000: MUX: Watson Bucketting Parameters [1CEC:06D4][2018-01-02T19:31:03]i000: MUX: P1 - vs_community [1CEC:06D4][2018-01-02T19:31:03]i000: MUX: P2 - 14.0.25420.01.00 [1CEC:06D4][2018-01-02T19:31:03]i000: MUX: P3 - 14.0.25420 [1CEC:06D4][2018-01-02T19:31:03]i000: MUX: P4 - Layout [1CEC:06D4][2018-01-02T19:31:03]i000: MUX: P5 - VSSecondaryInstaller_box [1CEC:06D4][2018-01-02T19:31:03]i000: MUX: P6 - DownloadThirdParty [1CEC:06D4][2018-01-02T19:31:03]i000: MUX: P7 - 0x643 [1CEC:06D4][2018-01-02T19:31:03]i000: MUX: P8 - 製品 'PowerShellToolsV1' のダウンロードに失敗しました。ダウンロードしたファイルの署名の確認に失敗しました。改ざんされている可能性があります [1CEC:06D4][2018-01-02T19:31:03]i000: MUX: P9 - 製品 'PowerShellToolsV1' のダウンロードに失敗しました。ダウンロードしたファイルの署名の確認に失敗しました。改ざんされている可能性があります
何らかの対処方法をどなたかご存じないでしょうか。
- 署名の確認を成功させる方法
- 署名の確認に失敗してもファイルを消さず処理を続行させる方法
- 署名の確認に失敗したらスキップして処理を続行させる方法
- 署名の確認に失敗するコンポーネントをオフラインインストーラから除外する方法
- それ以外の方法
環境は、Windows 10 Fall Creators Update x64、Windows 8.1 Update x64どちらもダメでした。windows updateはどちらも最新です。
※vs2017を使えというアドバイスは必要ありません。
※isoを使えというアドバイスは必要ありません。
※以下のurlはすべて確認しましたが、いずれもうまくいきませんでした。
- https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d963d31d-bd74-45ef-bdc4-7855a7649494/visual-studio-2015-offline-installation?forum=vssetup
- https://msdn.microsoft.com/en-us/library/mt706497.aspx
- https://docs.microsoft.com/en-us/visualstudio/install/install-certificates-for-visual-studio-offline
回答
-
PowerShellToolsの更新に伴ってリンク先が更新されたようです。
D:\新しいフォルダー>curl -I http://go.microsoft.com/fwlink/?LinkID=616995 HTTP/1.1 302 Moved Temporarily Cache-Control: no-cache Pragma: no-cache Content-Length: 0 Expires: -1 Location: https://adamrdriscoll.gallerycdn.vsassets.io/extensions/adamrdriscoll/powershelltoolsforvisualstudio2015/3.1.618/1516589473337/PowerShellTools.14.0.vsix Server: Microsoft-IIS/8.5 X-AspNetMvc-Version: 5.2 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Fri, 26 Jan 2018 06:44:14 GMT Connection: keep-alive D:\新しいフォルダー>curl -O https://adamrdriscoll.gallerycdn.vsassets.io/extensions/adamrdriscoll/powershelltoolsforvisualstudio2015/3.1.618/1516589473337/PowerShellTools.14.0.vsix % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2042k 100 2042k 0 0 4355k 0 --:--:-- --:--:-- --:--:-- 4355k D:\新しいフォルダー>ls -l total 2043 -rw-r--r-- 1 h Administrators 2091804 Jan 26 15:44 PowerShellTools.14.0.vsix
これように作ったローカルプロキシを使わずともダウンロードできるようになりました。- 回答としてマーク hATrayflood 2018年1月26日 8:56
すべての返信
-
s ドライブというのはネットワークドライブでしょうか?
何か影響があるかもしれないので、展開先をローカルドライブに指定して試してみてはいかがでしょう?
ログを見た感じだと、PowerShellToolsV1 のDLに失敗しており、それを抱えているのが、WebPlatformInstallerのようなので、何か権限などで影響があるのかもしれません。
また、オフラインインストーラを作成したフォルダをフォルダごとコピーする分にはどこにコピーしても利用できるはずなので、最初から内部公開用フォルダにDLせず、ローカルにDLしても問題なく動作するはずです。
とっちゃん@わんくま同盟, Visual Studio and Development Technologies http://blogs.wankuma.com/tocchann/default.aspx
-
証明書とか中間証明書とかが入っていない系の問題と思いますが。
手でPowerShellTools.14.0.vsixをダウンロードして、署名検証したらどうなります?なお、参考までに、こちらだとこういう結果になります。
>ver
Microsoft Windows [Version 10.0.16299.192]
> vsixsigntool.exe verify /v C:\Users\~\Downloads\PowerShellTools.14.0.vsix
Verifying: "C:\Users\~\Downloads\PowerShellTools.14.0.vsix"
Signing Certificate:
Issued to : Adam Driscoll
Issued by : DigiCert SHA2 Assured ID Code Signing CA
From : Sat Jan 28 09:00:00 2017
Expiry : Thu Feb 1 21:00:00 2018
Sign Method: RSA/SHA256
SHA1 hash : f2 be f3 3f 6d d7 32 bb ae 4d d9 27 a5 bb 01 0a
93 a4 9b d5
VsixSignTool Success: Package "C:\Users\~\Downloads\PowerShellTools.14.0.vsix" is valid.
Number of files successfully Verified: 1
Number of errors: 0jzkey
-
これは署名の検証に失敗しているのではなくて、そもそもファイルのダウンロードに失敗してます。
インストーラーはhttp://go.microsoft.com/fwlink/?LinkID=659004&clcid=0x411を見に行って最新のダウンロードリスト(feed.xml)を取得し、そのリストに記述されているダウンロード先からローカルにダウンロードします。
しかし、このダウンロード先に問題があります。このリストではPowerShellToolV1のダウンロードURLはhttp://go.microsoft.com/fwlink/?LinkID=616995となっていますが、
このアドレスにアクセスすると本来ならインストールパッケージにリンクされているはずなのに正しくリンクされていません。
http://go.microsoft.com/fwlink/?LinkID=616995 ↓302 https://visualstudiogallery.msdn.microsoft.com/c9eb3ba8-0c59-4944-9a62-6eee37294597/file/199313/1/PowerShellTools.14.0.vsix ↓301 https://marketplace.visualstudio.com/vsgallery/c9eb3ba8-0c59-4944-9a62-6eee37294597
もともとは正しかったのかもしれませんが、リンク先のファイルが無くなったからなのか、VisualStudioGalleryだったのがMarketPlaceに変更になったからなのかは判りませんが、ファイルをダウンロードできません。
飛ばされたページのダウンロードの
https://adamrdriscoll.gallerycdn.vsassets.io/extensions/adamrdriscoll/powershelltoolsforvisualstudio2015/3.0.582/1504150209811/199313/7/PowerShellTools.14.0.vsix
からはダウンロードできるので、完全になくなっているわけではないです。というわけで、理屈としては修正するにはfeed.xmlの内のリンクを変更などしてやればいいわけです。
変更箇所はPowerShellToolsV1を検索するとproductIdがPowerShellToolsV1となっているentry中に、それっぽいinstallerURLというタグがあるので、アドレスを書きかえてやります。<entry> <productId>PowerShellToolsV1</productId> <Title>PowerShell Tools for Visual Studio</Title> <version>3.0.0</version> <summary>PowerShell スクリプトとモジュールの開発とデバッグ用のツールのセット</summary> <id>http://go.microsoft.com/fwlink/?LinkID=616995</id> <longSummary>PowerShell スクリプトとモジュールの開発とデバッグ用のツールのセット</longSummary> <author> <name>Adam Driscoll</name> <uri>https://visualstudiogallery.msdn.microsoft.com/c9eb3ba8-0c59-4944-9a62-6eee37294597?SRC=Home</uri> </author> <terms> <termsText>License</termsText> <termsLink>http://go.microsoft.com/fwlink/?LinkId=616996</termsLink> <termsLinkText>License</termsLinkText> </terms> <discoveryHint> <vsix> <id>59875F69-67B7-4A5C-B33A-9E2C2B5D266D</id> <version>3.0.0</version> </vsix> </discoveryHint> <installers> <installer> <id>1</id> <languageId>en</languageId> <architectures> <x86/> <x64/> </architectures> <vsixId>59875F69-67B7-4A5C-B33A-9E2C2B5D266D</vsixId> <installerFile> <fileSize>2087816</fileSize> <installSize>5757191</installSize> <installerURL>https://adamrdriscoll.gallerycdn.vsassets.io/extensions/adamrdriscoll/powershelltoolsforvisualstudio2015/3.0.582/1504150209811/199313/7/PowerShellTools.14.0.vsix</installerURL> </installerFile> <logFiles> <location>%temp%\secondaryinstaller_vsix.log</location> </logFiles> <installCommands> <vsixSetup> <commandLineArguments>/quiet /uninstall:58dce676-42b0-4dd6-9ee4-afbc8e582b8a /log:"%PrimaryLogLocation%PowerShellTools.log"</commandLineArguments> <returnCodeMappings> <mapping> <returnCode>2003</returnCode> <success/> </mapping> <mapping> <returnCode>1002</returnCode> <success/> </mapping> </returnCodeMappings> </vsixSetup> <vsixSetup> <commandLineArguments>/quiet /admin %InstallerFile% /log:"%PrimaryLogLocation%PowerShellTools.log"</commandLineArguments> </vsixSetup> </installCommands> <repairCommands> <vsixSetup> <commandLineArguments>/quiet /admin %InstallerFile% /log:"%PrimaryLogLocation%PowerShellTools.log"</commandLineArguments> </vsixSetup> </repairCommands> <uninstallCommands> <vsixSetup> <commandLineArguments>/quiet /uninstall:%VsixId% /log:"%PrimaryLogLocation%PowerShellTools.log"</commandLineArguments> </vsixSetup> </uninstallCommands> </installer> </installers> </entry>
しかし、単純に書き換えてもインストーラーはfeed.xmlの検証に失敗しします。
これは元のfeed.xmlが改ざんされていないかをチェックするために署名されているからです。
ですから、書き換えたxmlファイルの署名をやり直してやる必要ががあります。
なお署名に使った証明書は信頼されたルート証明機関に登録されてないとインストールエラーになるようです。署名に使える元のファイルと同じマイクロソフトの証明書はないので、自己証明書を作って登録しておきます。あとはインストーラに対して書き換えたxmlファイルを読み込むように/OverrideFeedUriというオプションで指定してやります。
ja_visual_studio_community_2015_with_update_3_x86_x64_web_installer_8922964.exe /overridefeeduri "E:\VS2015U3COM\feed_fix_PowerShellTools_Installer_Url.xml" /layout E:\VS2015U3COM
このようにしてダウンロードが完了するまでは確認できました。(インストールが成功するかまではテストしてません)
署名をしたり面倒なので、自己証明書と書き換えたfeed.xmlを置いておきます。
なお、ルート証明機関に自己証明書を入れておくのは危険なので、わざと有効期間が短い証明書にしてあります。よって、すぐに試さないと無効になります。#1回試験するだけで26GBもダウンロードするのは大変
個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
- 編集済み gekkaMVP 2018年1月6日 13:36
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2018年1月9日 7:23
- 回答の候補の設定解除 hATrayflood 2018年1月26日 8:56
-
あ、なるほど。vsixじゃなくウェブページのhtmlが落ちてきてるから署名の確認は当然失敗してて
それならinstallerURLを書き換えればOKってことですね。ヒントありがとうございます。
ただ、このパターンだとインストール時にこれ専用の自己証明書をあらかじめ入れとかないといけないので
あとでやるときうっかり忘れそうですね。(しかも期限切れ)
ネットワークで解決できそうだったので、プロキシサーバ作りました。
https://github.com/hATrayflood/vs2015_install_proxy
これで自己証明書を作ることなく、すべてダウンロードできました。
-
PowerShellToolsの更新に伴ってリンク先が更新されたようです。
D:\新しいフォルダー>curl -I http://go.microsoft.com/fwlink/?LinkID=616995 HTTP/1.1 302 Moved Temporarily Cache-Control: no-cache Pragma: no-cache Content-Length: 0 Expires: -1 Location: https://adamrdriscoll.gallerycdn.vsassets.io/extensions/adamrdriscoll/powershelltoolsforvisualstudio2015/3.1.618/1516589473337/PowerShellTools.14.0.vsix Server: Microsoft-IIS/8.5 X-AspNetMvc-Version: 5.2 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Fri, 26 Jan 2018 06:44:14 GMT Connection: keep-alive D:\新しいフォルダー>curl -O https://adamrdriscoll.gallerycdn.vsassets.io/extensions/adamrdriscoll/powershelltoolsforvisualstudio2015/3.1.618/1516589473337/PowerShellTools.14.0.vsix % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2042k 100 2042k 0 0 4355k 0 --:--:-- --:--:-- --:--:-- 4355k D:\新しいフォルダー>ls -l total 2043 -rw-r--r-- 1 h Administrators 2091804 Jan 26 15:44 PowerShellTools.14.0.vsix
これように作ったローカルプロキシを使わずともダウンロードできるようになりました。- 回答としてマーク hATrayflood 2018年1月26日 8:56