私は自分自身のインストーラUIを書き込むブートストラップを書きました。それはWPFフロントエンドを持っています。私は3つのMSIのpacakgesとEXEが含まれています。だから十分なスペースがないディスクにインストールしようとすると、インストーラのUIにエラーメッセージダイアログを表示するにはどうすればいいですか?十分なディスク容量がある場合に私が見つけることができるコールバックがありますか?ご意見をお聞かせください。ディスク・スペースを表示するには、ブート・ストラップ・アプリケーションで十分なメッセージがありませんか?
1
A
答えて
2
私は同じことをしています。
秘密は、BootstrapperApplicationData.xmlを読み取り、解析することです。 次に、WixPackageProperties要素のInstalledSize属性を使用できます。このリンクGetting Display Name from PackageIDは、実行時にそのファイルを読む方法を示しています。 InstalledSizeを関連する構造体に追加する必要があることに注意してください。
これらの数字の合計と比較してディスク容量を確認し、インストール前にユーザーに知らせる必要があります。
これは私のコードの一部のコピー/ペーストである:で、このXMLに位置しています
using System.Collections.ObjectModel;
using System.Xml.Serialization;
public class PackageInfo
{
[XmlAttribute("Package")]
public string Id { get; set; }
[XmlAttribute("DisplayName")]
public string DisplayName { get; set; }
[XmlAttribute("Description")]
public string Description { get; set; }
[XmlAttribute("InstalledSize")]
public int InstalledSize { get; set; }
}
[XmlRoot("BootstrapperApplicationData", IsNullable = false, Namespace = "http://schemas.microsoft.com/wix/2010/BootstrapperApplicationData")]
public class BundleInfo
{
[XmlElement("WixPackageProperties")]
public Collection<PackageInfo> Packages { get; set; } = new Collection<PackageInfo>();
}
public static class BundleInfoLoader
{
private static readonly string bootstrapperApplicationData = "BootstrapperApplicationData.xml";
public static BundleInfo Load()
{
var bundleFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var path = Path.Combine(bundleFolder, bootstrapperApplicationData);
var xmlSerializer = new XmlSerializer(typeof(BundleInfo));
BundleInfo result;
using (var fileStream = new FileStream(path, FileMode.Open))
{
var xmlReader = XmlReader.Create(fileStream);
result = (BundleInfo)xmlSerializer.Deserialize(xmlReader);
}
return result;
}
}
関連する問題
- 1. "IOException:ディスクに十分な領域がありません。"十分なスペース
- 2. Move-Item:ディスクに十分なスペースがありません
- 3. R6016 - スレッドデータ用に十分なスペースがありません
- 4. ベン図 - ラベルに十分なスペースがありません
- 5. Cordova Phonegap - Androidジオロケーションにエラーが表示されます:アプリケーションに十分なジオロケーションのパーミッションエラーがありません
- 6. Java.io.IO.Exception; J2MEアプリケーションの実行中にディスク上に十分な領域がありません
- 7. AH01990:PRNGにはまだ十分なエントロピーがありません
- 8. エラーR6016の解決 - スレッドデータのための十分なスペースがありません
- 9. システムには十分なメモリーがありますが、「オブジェクト・ヒープに十分なスペースを確保できませんでした」
- 10. "コマンドラインパラメータの例外が十分ではありません"はありますか?
- 11. adSizeプロパティを設定できません。カスタムサイズの広告を表示するのに十分なスペースがありません
- 12. のRails 3には、エラー番号を取得する:: ENOMEM:十分なスペースがありません、私はModel.all
- 13. ドッキング・ビルドはスペースが足りないと言いますが、十分なスペースがあります
- 14. javaFX:TableViewのcellvalueが列に表示するには十分ではありません。
- 15. Wordpress - クローンデータベースに十分な権限がありません
- 16. JPAマッピングエラー - IDクラスに十分なメタデータがありません
- 17. certbot-auto:クライアントに十分な権限がありません
- 18. Jmeterログに十分な情報がありません
- 19. tmpfsドッカーコンテナに十分な空き容量がありません
- 20. NbClustのエラー:クラスタに十分なオブジェクトがありません
- 21. タイプ:製品に十分な権限がありません。 Hybris
- 22. CDF、matplotlib - plot、pythonに十分な色がありません
- 23. gtrendsパッケージで「検索ボリュームエラーが十分ではありません」
- 24. Androidにはページ用に十分なタイルがありませんか?
- 25. CodeIgniter for GoogleのCodeIgniterライブラリが十分ではありません
- 26. ipadフレームの最大サイズが十分ではありません
- 27. UITableViewはスクロール可能ではありませんが、十分な高さです。
- 28. .NET/Entity Framework - System.Data.UpdateException十分正確ではありませんか?
- 29. Bash - 十分な引数がありません
- 30. Windows上のドッカーNano Server:ディスクに十分な空き容量がありません
ちょっとメイト、?私は自分のbin/releaseディレクトリの中で見つけられません – mayooran
loadメソッドはそれを見つけます。実行中のアセンブリからXMLをロードします。 burn .exeが実行されると、一時フォルダにGUIDを持つサブフォルダが作成されます。そのフォルダの中に、「.ba」という追加のフォルダが作成されます。そのフォルダにC#ライブラリがあります。ブートストラップの設定、サポートするファイルの束、BootstrapperApplicationData.xmlファイルがあります。これは上記のコードでロードしています。 – intinit