トップ回答者
VS2008で作成したクライアントアプリが一部のVistaで動かない

質問
-
VS2008(VB2008)でクライアントアプリケーションを作成しました。
本アプリはクライアントのインベントリ情報を収集し、管理サーバのFTPサイトに結果テキストファイルをアップロードするものです。
また動作状況をカレントフォルダにログファイルとして出力します。
VS2008でSetupProjectを作成し、インストーラーを作成しました。
.NET3.5がInstallされている環境様々なOS(Xp移行)で動作検証を行いましたが、Vistaでも動作するものもあるのですが
動作しないVistaが存在します。
動作しない事象としては、サーバのFTPサイトへの接続が出来ない、カレントフォルダ(EXEファイルが存在するフォルダ)にログファイルが
作成できない状態です。
憶測ですが、セキュリティやアクセス権的な問題があるような気がしますが、これといった箇所が見つかりません。
Administratorsは「特殊なアクセス許可」以外はチェックが入っています。
同じような現象に遭った方、対処方法などありましたらご教授下さい。
furuyosi
回答
-
検索して調べてみたらいかがですか?
と思いながら、検索して調べた結果を追加情報としてお知らせします。
@IT .NET TIPS アプリケーション設定情報はどこに保存すべきか?
http://www.atmarkit.co.jp/fdotnet/dotnettips/263apppath/apppath.html
アプリケーション設定情報の保存場所
※ リンク先の回答にあるリンク先も為になります。
http://social.msdn.microsoft.com/Forums/ja-JP/vsgeneralja/thread/cdafb223-7296-4456-89e9-49468267525c
UAC の影響を受けずに単純に扱えるのは「ユーザー個別」用のフォルダです。
マイドキュメントのフォルダもユーザー個別ですが、ここはユーザー自身のファイル置き場なので、アプリケーションのデータ置き場としてはあまりよくないかもしれません。
ただ、ログを回収する際にはユーザーに伝えやすいですね。- 回答としてマーク furuyosi 2010年7月28日 2:11
すべての返信
-
UAC は絶対に OFF にすべきでないと思います。
UAC を OFF にするということは、自分の身に覚えのないプログラムによって PC の中身を好き勝手される危険性がある、と考えていいと思います。
TH01 さんが UAC を無効にして確認してみては? と提案されているのは、原因が UAC に関係するものかどうかの切り分けとして一時的に OFF にしては? ということだと思います。
ユーザー アカウント制御の設定とは
http://windows.microsoft.com/ja-JP/windows7/What-are-User-Account-Control-settings
Living with and benefiting from User Account Control (from Windows Vista Inside Out)
http://windows.microsoft.com/ja-JP/windows-vista/Living-with-and-benefiting-from-User-Account-Control-from-Windows-Vista-Inside-Out
ですので、UAC を OFF にして解決したのではなくて、原因が判明しただけのことです。
UAC を OFF にしないと書けない場所にログを書こうとする、Vista 的に行儀が悪い処理を修正するべきだと思います。 -
totojo さん、補足ありがとうございました。
私の場合、ファイアウォールを止める場合は、息も止めてます。
UAC を有効にした場合の開発者にとっての不都合話は、検索することでその対策を含めて多く見つかると思います。
それに加えて最近、私がハマったことを補足しますと、管理者権限が必要なプログラムをスタートアップに登録しても動作しません。
対策としてはタスクスケジューラに登録する必要があります。
これも検索すると方法は見つかると思いますので調べてください。
(追記:ログファイルの場所を適切にすることなどによって管理者権限がいらないようにできれば、それがベストです。)- 編集済み TH01 2010年7月27日 7:52 追記
-
最近よく似たスレッドを何度か見たように思うのでうすが、次の URL の記事はいかがでしょうか。
リソースの管理 - Windows 7 対応アプリケーションの互換性
http://msdn.microsoft.com/ja-jp/windows/dd882533.aspx -
検索して調べてみたらいかがですか?
と思いながら、検索して調べた結果を追加情報としてお知らせします。
@IT .NET TIPS アプリケーション設定情報はどこに保存すべきか?
http://www.atmarkit.co.jp/fdotnet/dotnettips/263apppath/apppath.html
アプリケーション設定情報の保存場所
※ リンク先の回答にあるリンク先も為になります。
http://social.msdn.microsoft.com/Forums/ja-JP/vsgeneralja/thread/cdafb223-7296-4456-89e9-49468267525c
UAC の影響を受けずに単純に扱えるのは「ユーザー個別」用のフォルダです。
マイドキュメントのフォルダもユーザー個別ですが、ここはユーザー自身のファイル置き場なので、アプリケーションのデータ置き場としてはあまりよくないかもしれません。
ただ、ログを回収する際にはユーザーに伝えやすいですね。- 回答としてマーク furuyosi 2010年7月28日 2:11