C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: XMLの設定ファイルについて


(過去ログ 65 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■37869 / inTopicNo.1)  XMLの設定ファイルについて
  
□投稿者/ Sak-Tak (14回)-(2009/07/02(Thu) 11:42:28)

分類:[C#] 

設定ファイルについて教えて下さい。
開発環境:VS2008+WinXP

アプリケーションの設定ファイルをXmlSerializerクラスを利用して保存させたいと思っております。
VisualStudioのInstallerでmsiファイルを作成し、VirtualPCのVistaにインストールしました。
開発環境のXPではXMLファイルの読み込みは出来ますが、Vistaでは「XMLファイルへのアクセスが拒否されました」とエラーが出ます。
インストールしないでファイルをVistaへコピーして立ち上げるとエラーは出ないでXMLファイルを読み込むことが出来ます。
インストールするとなアクセスできないのでしょうか?デバッグに問題があるのでしょうか?
よろしくお願いいたします。

以下がソースコードです。
フォームにボタンとTextBoxを1個づつ貼り付けております。

namespace WindowsFormsApplication1 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e) {
            string Path = Application.StartupPath + "\\SetUpFile.xml";
            //XMLデシリアライズ
            System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(Setting_File));
            Setting_File SetFile;
            using (System.IO.FileStream stream = new System.IO.FileStream(Path, System.IO.FileMode.Open)) {
                SetFile = (Setting_File)serializer.Deserialize(stream);
            }
            textBox1.Text = SetFile.Red;
        }
    }

    public class Setting_File {
        public Setting_File() {
        }
        //プロパティ作成
        public string Red = "Red";
    }
}

引用返信 編集キー/
■37875 / inTopicNo.2)  Re[1]: XMLの設定ファイルについて
□投稿者/ 渋木宏明(ひどり) (1186回)-(2009/07/02(Thu) 12:37:59)
渋木宏明(ひどり) さんの Web サイト
>開発環境のXPではXMLファイルの読み込みは出来ますが、Vistaでは「XMLファイルへのアクセスが拒否されました」とエラーが出ます。

書き込み権限が無いんでしょうね。

>インストールしないでファイルをVistaへコピーして立ち上げるとエラーは出ないでXMLファイルを読み込むことが出来ます。

結果的に、書き込み権限があるんでしょうね。

> インストールするとなアクセスできないのでしょうか?

ざっくり言えば、「はい」です。

基本的に、アプリケーションのインストールフォルダのファイルを書きかえることは、相当昔から推奨されていません。

アプリケーション設定をファイルに保存するなら、それなりのフォルダに配置することが必要です。
(フォルダ名は OS のバージョンやインストール状況によって異なります)

詳細は

"Designed for Windows XP" アプリケーション仕様書 2.3 日本語版
http://www.microsoft.com/downloads/details.aspx?familyid=0488C060-443C-42F7-B75F-4C5E73FFACA5&displaylang=ja

とかで確認してください。

# Vista 用の資料の URL を忘れたので、どなたかフォローをお願いします m(_ _)m

引用返信 編集キー/
■37879 / inTopicNo.3)  Re[2]: XMLの設定ファイルについて
□投稿者/ Sak-Tak (15回)-(2009/07/02(Thu) 13:22:17)
2009/07/02(Thu) 14:08:49 編集(投稿者)

ありがとうございます。
マイドキュメント等に設定ファイルを保存するよう変更して、試してみます。
引用返信 編集キー/
■37881 / inTopicNo.4)  Re[2]: XMLの設定ファイルについて
□投稿者/ やじゅ (1068回)-(2009/07/02(Thu) 13:43:44)
やじゅ さんの Web サイト
> # Vista 用の資料の URL を忘れたので、どなたかフォローをお願いします m(_ _)m

Certified for Windows Vista 技術要件
http://download.microsoft.com/download/a/4/c/a4c003f7-76be-444b-a3b7-4e74b7d5767f/WindowsVistaSoftwareLogoSpec10J.doc

なぜ %PROGRAMFILES% に書き込んではいけないか?
http://blogs.wankuma.com/tyappi/archive/2007/07/12/84794.aspx
すべてのユーザ共有のドキュメントフォルダって…
http://blogs.wankuma.com/iijimas/archive/2007/09/08/94756.aspx

All Users/Application Data の配下にその application 用の folder を作成して、
ACL を適宜変更するというのが推奨される方法です。とのこと。

引用返信 編集キー/
■37884 / inTopicNo.5)  Re[3]: XMLの設定ファイルについて
□投稿者/ Sak-Tak (17回)-(2009/07/02(Thu) 14:08:38)
2009/07/02(Thu) 15:41:02 編集(投稿者)

やじゅさん ありがとうございます。
この記事には書き込みはダメって書かれていますが、自分の場合は読み込みが出来ません。
要するに、アクセスそのものがダメって事なのでしょうか?
どちらにせよApplication Data にデータを置くのが無難みたいですね。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -