1

Burn を使用する WiX インストーラーに取り組んでいるため、.Net 要件があります。サーバー OS ではロール マネージャーを使用する必要があるため、必須バージョンの .Net のバンドルは機能しません。それが WiX インストールの一部であるという事実は、私のタスクを達成するのに役立つ他の方法がある場合に備えて、それほど重要ではありません。以下のコードをスタンドアロンの .Net コンソール アプリケーションとして実行/テストしています。これを回避するためにこのメソッドの使用に失敗した後、powershell と "Enable-WindowsOptionalFeature" を使用して次のように記述しました。

    static void Main(string[] args)
    {

        PowerShell ps = PowerShell.Create();
        Runspace runspace = RunspaceFactory.CreateRunspace();
        runspace.Open();

        Pipeline pipeline = runspace.CreatePipeline();

        Command addDotNet = new Command("Enable-WindowsOptionalFeature");
        addDotNet.Parameters.Add("-FeatureName netfx3 -Online -All");
        pipeline.Commands.Add(addDotNet);
        Collection<PSObject> log = pipeline.Invoke();

}

実行すると、このウィンドウがポップアップします。
Windows Server の役割と機能は、Windows 機能コントロール パネルから自動的にインストールまたはアンインストールできません。 ここに画像の説明を入力

「サーバーマネージャーコマンドレット」に相当するものを既に使用していると私がどのように考えたかを見ると、実際に何を求めているのかわかりません。したがって、2 つの部分からなる質問は、1) この問題を回避する適切な方法は何ですか。2) インストール中に静かにするにはどうすればよいですか。

PS: この質問が本当に Server Fault に関するものである場合は、お知らせください。

4

4 に答える 4

0

サーバー 2012 インスタンスのどこで問題が発生したかを把握しようとしているときに、logging/writeline ステートメントをいくつか追加しました。これらのデバッグ行がコンソールにまったく出力されていないことに気付きました。

ポップアップを十分に読んでいないことがわかりました。苦情は PS コマンドレットの使用に関するものではなく、アプリを実行するために .Net 3.5 をインストールしようとすることに関する苦情でした。私のアプリは .Net 3.5 を対象としていたため、メッセージは .Net 3.5 を自動的にインストールしようとする試みに関するものでした

この質問は、私の一時的な失明と愚かさの証であるだけでなく、詳細に注意を払い、エラーを読んでエラーが発生した理由を理解することの重要性についての解説としても役立ちます. :)

于 2013-07-22T17:46:44.900 に答える
0

私が言おうとしているのは、これまでの経験ではなく常識に基づいているので、これが関係ない場合は申し訳ありません.

このバージョンのみが使用している Windows ADK を備えているため、Windows Server 2012 を使用できるようです。Windows 8 (クライアント OS) と Windows Server 2012 (サーバー OS) では、機能を有効にする方法が異なります。Windows 8 ではオプション機能として表示されていましたが、サーバーではサーバーの役割/機能として表示されていました。

あなたの言うこととは反対に、バンドルはサーバーOSであるためではなく、OSに含まれており、有効にする必要があるため機能しないことに注意してください。これは、サーバー OS (Win 2012) とクライアント OS (Windows 8) の両方に当てはまります。

Windows 8 と Win 2012 で異なる方法を使用する必要があるだけです。

Windows 8 の場合、この方法は機能します。Windows 2012 の場合、表示されているヘルプでは、Add-WindowsFeatureコマンドレットの使用が推奨されています。

于 2013-07-19T01:55:09.237 に答える