2018.08.09昔はデスクトップアプリでAccessDB繋いでいるアプリケーションって王道だったと思うけど、今はなかなか情報が見つからなかった。Basicで快適にAccessDBをつないでプログラムを開発したまではいいんです。Source見ると”C:¥Windows....”とドライブレターからしっかりフルパスで定義されている。これ、配布パッケージにしたら明らかにまずいよね。他人のパソコン上にtakaoフォルダーなんてあるわけないじゃん。2017パーフェクトマスター”は乱暴にも”Exeを配布すりゃいいんだよ。逆引き大全”にはなにも配布については書いてない。Server前提なので役にたたない。ClickOnceというインストール方法に言及していてくれたのは参考になった。この方法は後述する問題から使えませんでしたが。インストーラー”でGoogle先生に聞くと多くの先人が”インストーラーはMS提供の簡単なものがあるから導入して、同じソリューション内にsetupプロジェクトを作るのです”と教えてくださった。そのとおりやると、とりあえずはインストーラーパッケージができあがる。AccessDBはファイルエクスプローラーでApplicationにAddしたら同梱された。Files”に入れるのであれば致命的な矛盾を起こすのでやめましょう。)問題はデータベースのconnectionString(接続文字列)だ。これもGoogle先生に英語で聞くと、外人の先生が”app.configを修正すればいいのだよ。”と教えてくださっているので、私の場合、プログラムモジュールとデータベースは同じ場所に置くと決めつけて、ConnectionStringを”./database.accdb”と書き直してインストーラーを作成した。するとprogramname.exe.configっていうXMLファイルができており、VBはスタートアップの時にこれを読んでくれるらしい。ConnectionStringもしっかりapp.configからコピーされている。ダイナミックにやる場合は、PostInstallationで追加のGUIを作るらしいが、そこまではやらなくて済んだのでこれでよしとする。アプリケーションのショートカットは、いったんアプリケーションフォルダーにあるプロジェクトファイルを右クリックしてショートカットを作ってから、移動する。以外にバタ臭いので戸惑う。アプリケーションの置き場所は今回はユーザーのappdata内、つまり[LocalApplicationData]にした。ここらへんの[]で囲まれる特別なフォルダー名はここを参考にさせていただいた。インストールプロジェクトは右クリックでインストール、アンインストールのテストまでできる親切プロジェクトでした。トータルでみるとMicroSoftはAccessDB同梱のアプリケーションを制作する道具立てを全部そろえていてくれたということに気づきました。配布パッケージができた、と思う。2017がいたれりつくせりのWindows開発ツールだったからです。