アプリ開発のことなんか知らんねん...
- アプリを管理者として実行させる (app.manifest)
- App.config と Properties
- DebugとRelease
- Any CPU と x86 と x64
- アセンブリのバージョンなど
- インストーラの作成
- インストーラのバージョンと ProductCode
- 【参考】
アプリを管理者として実行させる (app.manifest)
- 「プロジェクト」→「新しい項目の追加」で「アプリケーション マニフェスト ファイル」を選択し、app.manifest というファイルを作成する。
- requestedExecutionLevel タグの level 属性の値を "asInvoker" から "requireAdministrator" に変更する。
<requestedExecutionLevel level="asInvoker" uiAccess="false" /> ↓ <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
App.config と Properties
- Propertiesの「設定」で作成した設定値は App.config にも保存される。
- スコープが「ユーザー」の設定は userSettings 要素に、「アプリケーション」の設定は applicationSettings 要素に保存される。
- App.config の userSettings / applicationSettings 要素を直接編集して値を変更した場合、Propertiesの「設定」を開くと警告メッセージが出る。
- 逆にPropertiesの「設定」で設定値を変更して保存すると、App.config は上書きされる。
- つまり、App.config の userSettings / applicationSettings 要素は直接編集しないほうが無難かも。
- 設定値の読み書きは下記の要領でおこなう。
var hoge = Properties.Settings.Default.Hoge; Properties.Settings.Default.Hoge = hoge; Properties.Settings.Default.Save(); // 保存を忘れずに
- userSettings はアプリから読み書きできるが、applicationSettings は読み取り専用。
- applicationSettings はアプリのexeファイルと同じフォルダのconfigファイルに保存される。
- userSettings は C:\Users\ユーザ名\AppData\Local\アプリ名 の下のフォルダのconfigファイルに保存される。
DebugとRelease
// C++ #ifdef _DEBUG // Debugの場合 #else // Releaseの場合 #endif
// C# #if DEBUG // Debugの場合 #else // Releaseの場合 #endif
Any CPU と x86 と x64
インストーラの作成
- 「拡張機能」→「拡張機能の管理」で「Microsoft Vosual Studio Installer Projects」をインストールしておく。
- ソリューションを右クリックし、「追加」→「新しいプロジェクト」で「setup」で検索し、「Setup Project」か「Setup Wizard」を選択。後者はウィザード形式でインストーラを作成できる。
- 少なくとも、プロジェクトの「プライマリ出力」(ビルドされたEXE) をインストーラに含める。
- アプリのインストール先は「Applicatoin Folder」のプロパティの「DefaultLocation」で設定する。[ProgramFilesFolder][Manufacturer]\[ProductName] が既定値。
- ショートカットは「User's Desktop」や「User’s Programs Menu」に作成する。(「User's Desktop」や「User’s Programs Menu」を選択した状態で、右の欄で右クリックして「ショートカットの作成」、そして「Applicatoin Folder」の「プライマリ」を選択してショートカットを作成し、適当な名前に変更する。)
インストーラのバージョンと ProductCode
- Setupプロジェクトのプロパティの「Version」でインストーラのバージョンを設定できる。
- 「Version」を変更すると「ProductCode」を変更するよう推奨される。「はい」をクリックすると「ProductCode」が自動更新される。
- 「ProductCode」が同じアプリがインストール済みの環境にはインストールできない。(古いアプリを手動でアンインストールする必要がある。コマンドラインでオプションを指定すれば上書きインストールも可能ではある。)
- 「UpgradeCode」が同じで「ProductCode」が異なるアプリがインストール済みの場合、古いアプリが自動でアンインストールされ、新しいアプリがインストールされる。
- 「UpgradeCode」が異なるアプリは別物と認識されるので、共存できる。
- 「ProductCode」と「UpgradeCode」って名前と意味が逆じゃね?
- 「ProductCode」と「UpgradeCode」はGUIDであり、プロパティで選択して「New Code」をクリックすれば更新できる。
【参考】