CD から実行する必要がある .NET WinForms アプリケーションがあります。私が把握する必要があるのは、インストール後にアプリケーションを実行するよりも、ユーザーが .NET バージョンをインストールするか、必要に応じてインストールする必要があるかどうかです。ブートストラップについて私が見つけた情報には、アプリケーションのセットアップとインストールが含まれます。何もインストールしない場合、どうすればこれを行うことができますか? 情報をいただければ幸いです..
4 に答える
私もずっとインストーラーを作らないとできないと思っていましたが、そうではありません。"GenerateBootstrapper"と呼ばれる msbuild アクションがあります。Visual Studio を使用している場合:
- プロジェクトを右クリック
- プロジェクトのアンロード
- YourProjectName.csproj を編集します」
次に、さまざまな方法で GenerateBootstrapper アクションを追加できます (インストールするものによって異なります)。MSDN は .NET 2.0 の例を示しています。
<ItemGroup>
<BootstrapperFile Include="Microsoft.Net.Framework.2.0">
<ProductName>Microsoft .NET Framework 2.0</ProductName>
</BootstrapperFile>
</ItemGroup>
<Target Name="BuildBootstrapper">
<GenerateBootstrapper
ApplicationFile="WindowsApplication1.application"
ApplicationName="WindowsApplication1"
ApplicationUrl="http://mycomputer"
BootstrapperItems="@(BootstrapperFile)"
OutputPath="C:\output" />
</Target>
この例は試していませんが、自分で試してみたところ、XP マシンに .NET 4 Client Profile (現在の最新の安定した .NET リリース) をインストールするには、Windowsをインストールする必要があることがわかります。まずイメージング コンポーネント。そのため、VS2010 に含まれる標準の .NET4 クライアント プロファイルの前提条件が XP で失敗します。だから私は自分のブートストラップを書いた。コンソール アプリ用のブートストラップを作成するサンプル VS2010 ソリューションをダウンロードできます。ただし、ブートストラップをインストール (コピーするだけ) する必要があります。手順は次のとおりです。
- Windows Imaging Component ブートストラップをダウンロードする
- %PROGRAMFILES%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages に解凍します。
- BootstrapperTest ソリューションをダウンロードする
- ビルド ソリューション。\bin\Debug ディレクトリに BootstrapperTest.exe と setup.exe が作成されていることがわかります。Setup.exe はブートストラップです。.NET がインストールされていなくても実行できます。.NET が取得され、BootstrapperTest.exe が実行されます。
- 単一のファイルとして配布する場合は、ChilkAt Zip2Secureまたはその類似物を使用することをお勧めします。Zip2Secure は非常に使いやすく、問題がないことを願っています。
Visual Studio でビルドする msi インストーラーには、フレームワークの依存関係をチェックし、必要に応じて最初にインストーラーを開始するネイティブの setup.exe を含めることができます。CD に再配布可能ファイルを含めることもできます。ただし、それを機能させるには、プログラムをインストールする必要があります。
それ以外の場合は、独自のネイティブ コード ツールを作成する必要があります。
.NET ランタイムをチェックし、必要に応じて .NET のインストールをトリガーし、.NET アプリケーションを起動する小さなネイティブ コード ローダーをコーディングできます。
最も簡単な方法は、この質問に記載されているレジストリ エントリを確認することです。
スクリプト ファイルは、CD から確認する最も簡単な方法です。