0

誰かがここで助けてくれることを願っています。自己ホスト型の vagrant box をバージョン管理しようとしているので、Vagrant Cloud を使用せずにこれを行います。

次のメタ データ ファイルを作成しました。

{
  "description": "How about this",
  "name": "Graphite",
  "versions": [
    {
      "version": "1.8",
      "providers": [
        {
          "name": "virtualbox",
          "url": "http://desktopenvironments/Graphite/Graphite_1.8.box"
        }
      ]
    }
  ]
}

これは、http: //docs.vagrantup.com/v2/boxes/format.htmlにある vagrant (やや欠けている) ドキュメントから直接取得したものです。

vagrant add を実行すると (このファイルを含むボックス ファイルをディスクから直接取得)、次のようになります。

The metadata associated with the box 'graphite' appears corrupted.
This is most often caused by a disk issue or system crash. Please
remove the box, re-add it, and try again.

なぜこれが起こっているのかについての支援は大歓迎です。

4

1 に答える 1

1

テキストエンコーディングにUTF8を使用して、作成したac#アプリからメタデータファイルを生成していました。これはたりない。BOM なしの UTF8 を使用する必要があります。バイト オーダー マークが削除されると、すべてが 100 秒で動作します。

var settings = new JsonSerializerSettings() { ContractResolver = new LowercaseContractResolver() };
string json = JsonConvert.SerializeObject(metadata, Formatting.None, settings);
var utf8WithoutBom = new System.Text.UTF8Encoding(false);
using (var sink = new StreamWriter(outputFilePath, false, utf8WithoutBom))
{
    sink.Write(json);
}
于 2015-05-28T14:38:35.090 に答える