- PR -

C#アプリケーション配布

投稿者投稿内容
Npara
会議室デビュー日: 2006/02/06
投稿数: 13
お住まい・勤務地: 福岡市
投稿日時: 2006-02-13 17:15
SQLServerの知識も乏しいので大変参考になります

実は、作成しているパッケージは個人端末のみの使用を想定とした設計になっていて、
C#アプリケーションと自端末にインストールされたSQLServerとのやりとりしか行わないものなのです。
ですから、クライアントではなく、そのものをインストールして頂かないと動作環境が整わないような気がします
仮にSQLServerをインストールしてある事を前提にしたとしても
こちらで用意したSETUP.INIを使用して欲しいというものもあるし、
何よりそのような手順にしてしまうとユーザー様に優しくないパッケージになってしまいますよね・・・?
(SQLServerのインストール方法が解らない、インターネットが使用できる環境ではない等)
困りました
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-13 17:28
MSDE じゃダメなのかなぁ。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2006-02-13 17:28
引用:

インストーラーの処理の内部でSQLServerをインストールしたいのですが
良い方法が見つかりません。

...省略...

Batファイルの起動方法がわからずに振り出しに戻ってしまいました(^^;


インストーラの内部からバッチファイルは動かせません(全く方法が無いわけじゃありませんけどね)。
そもそも、インストーラ自身はバッチを置き換えるために出来たものですので呼べる必要もないですし(^^;

さて、この問題ですが、2つに分かれます(SQLのインストールと、テーブルの作成)。

まずは簡単なほうのテーブル作成ですが、こちらはカスタム動作で作成します。
チュートリアルがありますので、それを参考にして作ってください。

で、問題は SQL Server のインストールですが、こちらは事前インストールという形態になります。
具体的には、setup.exe(ブートストラッパー)が、msiを実行する前にセットアップするというものです。

VSの標準ブートストラッパーでは対応できない場合は、アドオンも検討してみてください。
これらでもダメな場合、MSでもフリーのブートストラッパーを出していますのでそれらも使えるかもしれません。

どこにも自分の要求に見合うものがない場合は、自作するってことになりますね。

この場合は、バッチファイルでもOKだとは思いますが、段取りとしては
バッチファイルからインストーラを実行するという形に変わります(^^;

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2006-02-13 17:37
ありゃ。
書いてた間に進展してる(^^;

えーっと、SQL Server を自端末オンリーでということなら、MSDE でOKでしょう。
たしか、SP4 からは NT系しかサポートしていなかったとは思いますけど(^^;


_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで
Npara
会議室デビュー日: 2006/02/06
投稿数: 13
お住まい・勤務地: 福岡市
投稿日時: 2006-02-13 18:47
じゃんぬねっと様、とっちゃん様

私の知識不足だったようです、大変お騒がせ致しました・・・
現在使用しているSQLServerがMSDEであるという事に気づいていませんでした
周りの方もSQLServerと呼ばれていたし、似た名称の別物があるとは思いませんでした
申し訳ないです、お恥ずかしい・・・。

では、質問を改めて。(2次配布問題はクリアされているとして・・・話を進めますね)

MSDEでしたらインストーラー内部でSETUP.INIを使用してインストールすることができるのでしょうか?

PS:ブートストラッパーについては知識がないので調べてみようと思います、アドバイス有難うございます。
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2006-02-14 11:25
引用:

周りの方もSQLServerと呼ばれていたし、似た名称の別物があるとは思いませんでした


MSDEも、SQL-Server の一形態であることには違いありませんからね
まぁ、間違っているわけではないですが、いくつかの制限が入ってるので
MSDE と SQL-Server は分けて考えるようにしたほうがいいです。

引用:

MSDEでしたらインストーラー内部でSETUP.INIを使用してインストールすることができるのでしょうか?


えーっと、お使いのブートストラッパーは?(うーん、堂々巡りしそうな悪寒...)
一応、VS2003で考えた場合の選択肢をチェックしてきました。

1.標準環境(追加プラグイン一切無し)
MSDE や MDAC の自動インストールはできません。
こちらの場合は、必要なものがあるかのチェックをするだけで、ない場合は適切なURLを提示してユーザーにダウンロード&インストールしてもらいます。

2.ブートストラッパープラグインあり(Microsoft Visual Studio .NET 2003 Bootstrapper Plug-In
MDAC は自動インストールできますが、MSDEは自動インストールできません。
この場合も、1と同様、適切なURLを出してダウンロード&インストールしてもらいます。

3.Microsoft Component Installer Software Development Kit(Spring 2050) あり
.NET Framework 1.1 の SP1と、SecurityUpdate も適用してくれて、MDAC やDirectX なんかも入れてくれますが、やっぱりMSDE はインストールしてくれません。

うーん、どうやら標準でMSDEの自動インストールに対応しているのってないみたいですね。

となると、他の選択をとる(=ブートストラッパーの自作)ということになりますねぇ...

手っ取り早いところでは、MSDE も添付しておいて、インストーラではチェックのみにして入れてない場合は、こっちからインストールしてねというドキュメントをつけておくのがよいのかな。

インストールの確認は、SQL-Server 2000(もしかしたら以上かも) がいるかどうかという判定になります。
MSDE そのものは、MS SQL-Server 2000 のコアエンジンの簡易版というようなものなので、SQL-Server2000 のなんとかエディションがインストールされていれば、そっちを利用する形になるらしいということしかわかっていません(^^;

詳しくは、PASS-J か、DB会議室で聞いてみるのがいいかと(^^;

詳しい筋の人なら、インストールのときの注意事項なんかも知ってるでしょうし、多分どこかでFAQになっているような気がします(気がするだけですけどね)。

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで
Npara
会議室デビュー日: 2006/02/06
投稿数: 13
お住まい・勤務地: 福岡市
投稿日時: 2006-02-14 14:28
とっちゃん様

分かりやすいアドバイス本当に有難うございます。

ブートストラッパーも含めていろいろ調べてみましたが、
私も同じくMSDEの自動インストールに関する情報を集める事はできませんでした

ドキュメントを作成して運用で逃げる手段も考えはしたのですが、
インストーラーの中の処理でDBへ初期値をSETする実行ファイルを流してしまう為、
インストーラー起動する前にはMSDEがインストールされている必要があるのです
上記の件は説明漏れてました、すいません

ブートストラッパーはパッケージを作成しようとする人にとって魅力的なものですね
自作でブートストラッパーを作成する事もできるのですね・・・
それでしたら、その内部で全て必要な物をインストールさせる形が良いですね、再起動後も自動で続きからインストール開始してくれるみたいですし
(MSDEインストール後の再起動問題も解決しますので)

ところで、msiファイルの中でキーによる認証処理を行っているのですが、
認証されて始めてブートストラッパーの処理へ遷移させるという動きは可能でしょうか?
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2006-02-14 18:30
引用:

ドキュメントを作成して運用で逃げる手段も考えはしたのですが、
インストーラーの中の処理でDBへ初期値をSETする実行ファイルを流してしまう為、
インストーラー起動する前にはMSDEがインストールされている必要があるのです



ブートストラッパーを用意するかどうかにかかわり無く、ブロックコードは必要です。
msiは、単独で実行できてしまうため(WindowsInstallerランタイムがあれば)、
起動時に後の実行に必要なものが全てそろっているかをチェックしなければなりません。

この部分は、「起動条件エディタ」で行うことが出来ます(VSの場合)。

引用:

ブートストラッパーはパッケージを作成しようとする人にとって魅力的なものですね
自作でブートストラッパーを作成する事もできるのですね・・・


exe ファイルである以上は、自作は可能です。
魅力的な面もありますが、作ってる人は、いやでも作らざるを得ないという状況だと...
Naitive C/C++ での長い経験があるのならまだしもそうではないのなら、
自作はお勧めできません(^^;

最低でも、Native C/C++ でOSと自由にお話できるレベルは必要ですので(^^;

引用:

ところで、msiファイルの中でキーによる認証処理を行っているのですが、
認証されて始めてブートストラッパーの処理へ遷移させるという動きは可能でしょうか?



ここは逆です。
msi を実行するのがブートストラッパーの仕事ですので、msi が実行されている時点で既にその使命は終えています。
なので、認証処理が必要になるような場合は、それらもブートストラッパー上で行う必要があります。

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで

スキルアップ/キャリアアップ(JOB@IT)