私は、同様の質問に対するいくつかの回答の周りにスカウトをしてきましたが、本当に私をあまり助けてくれませんでした。appdataフォルダへの書き込み - 権限の問題?
私はいくつかのリソースを埋め込んだその中にアプリを、持っています。起動時にappdataフォルダ内にリソースが存在するかどうかをチェックし、埋め込まれていない場合はテンプレートファイルをappdataフォルダにコピーしてからappdataフォルダのファイルを作業コピーとして使用します。
は、私は次のようにとりわけAPPDATAとリソースのサブフォルダを返すヘルパークラスを持っている:
class Folders
{
static public String GetUserFolder()
{
return Application.LocalUserAppDataPath;
}
static public String GetResourcesFolder()
{
// If the resources folder does not exist then create it
String userFolder = GetUserFolder();
String resourcesFolder = userFolder + "\\Resources";
if (!Directory.Exists(resourcesFolder))
{
Directory.CreateDirectory(resourcesFolder);
}
return resourcesFolder;
}
...
だから私のコードは、それが必要な場合は、プロセス内のフォルダを作成するパスを(返すGetResourcesFolderメソッドを呼び出します
String filename = Helpers.IO.Folders.GetResourcesFolder() + "\\data.dat";
FileStream outFile = System.IO.File.OpenWrite(filename);
だから私は場面を設定していると、このコードは、私が持っていたすべてのマシンに取り組んでいる。)にファイルが存在し、それはのようなものを使用して、それへの書き込みしようとしていない場合かどうかを確認します開発事務所しかし、いくつかのオフサイトの同僚は、彼らのマシン(それぞれの場合はXPマシン)から「クラッシュする」と訴えているが、それ以外の有用な情報はたくさんありません。私はそれが問題なく働いていたオフィスにXPマシンを持っています。
しばらく前に「アーカイブ」されたいくつかの本当に古いのdevのマシンを掘り後、私は2つのXP(SP2)もマシンのクラッシュを持っていることができました。どちらの場合も、クラッシュは書き込み権限に関連しているように見え、 "Run As ..."を使ってアプリケーションを実行すると問題が解決され、正しく実行されます。しかし、いったんappが正常に実行されると、appdataフォルダから作成したファイル/フォルダを削除しても、アプリケーションがクラッシュすることはなくなります。ただし、権限を昇格しなくても、その後の実行では正常に作成されます。
私が持っている問題は、私はもはや私には利用可能なのdevのマシン上でクラッシュを繰り返すことはできませんし、私はどこ私ができる状態に戻ってマシンを置くことについて移動する方法がわからないということです。
問題を引き起こしている可能性のあることや、マシンを「処女」の状態に戻してクラッシュを繰り返して、それを追跡する手助けをすることができる人はいますか?
問題が発生したマシン上の別の場所にexeファイルをコピーして実行すると、問題が繰り返されることがあります(この問題はUnhanded SecurityExceptionです)。しかし、デバッグコードを実行するとVisual Studio内から問題は発生しません - Visual Studioはコードを昇格された権限で実行しますか? –
'Path.Combine(GetUserFolder()、Resources"); ' – aligray