2009-03-02 2 views
6

問題のアプリケーションは.Net 2.0 Framework WinFormsです。大規模なユーザーベース(CDからのインストール)で動作するはずです。 InnoSetupを使用してインストールが完了しました。Vista&C# - ドラッグアンドドロップの問題(標高とは無関係)

2台のマシンでは、アプリケーションがドラッグ&ドロップを受け入れません(D & Dのアプリケーションとソースの両方に同じ標高があります)。

追加することによって&を読み取ります。&を実行します。アプリケーションのショートカットにINTERACTIVE SIDの権限を実行します。この問題は解決されているようです。

質問:これらの権利を追加する方法とD & Dが関連しており、インストールプロセスでこれらの権利をチェック/設定する方法はありますか?

+1

を、これは、プログラムがインストールされた場所に接続されている - それはプログラムファイルのOUT(インストールされている場合"信頼できる場所")、それはひどく振る舞います。 –

+1

良い質問、答えを知らない。 –

+1

最近、奇妙な大量展開の問題(winformsと.net 2.0)を伴った同様のボートにいました。あなたがVistaに限定されていないことが判明した場合、私はひどく驚くことはありません。私はいくつかの問題を抱えていましたが、最初はVistaでしか発生しないように見えましたが、数週間後には選択されたXPマシンで発生します。 – blak3r

答えて

0

暗闇の中でちょうどいいのに、アプリケーションのMain()メソッドに[STAThread]属性がありますか?それがなければ、ドラッグアンドドロップはまったく動作しません。 (これは、インタラクティブSIDの権利の変更に伴う行動の変化を説明していないが)。

+0

もちろん、そこにはあります。 また、この問題は、テスト済みの2台のマシンのうちの2台にすぎません。 –

+0

はい、スレッドの問題はWindows.Formsでランダムな動作をすることがあります。いくつかのマシンで動作し、他のマシンで動作しない可能性があります。 – AMissico

0

プロジェクトのexeファイルは、Visual Studioの環境の外で直接実行する必要があります。私はWindows Vistaプラットフォームで作業しています。

  1. は私がおよそ全くわからないんだ...

これに関連しているこれらの権利及びD & Dを追加し、どのように:

1

あなたはここに2つの質問があります。私たちはWinFormアプリケーションでD & DをシェルとOutlookに/から、Vistaでは問題なく使用します。私はあなたが示唆しているACLの変更があなたの持つ問題を修正することが確かであるとは確信していません。

  1. インストールプロセスでこれらの権限をチェック/設定する方法はありますか?

これを行う簡単な方法はcreate a .Net install classにあり、次のコードを追加します。また

public static void ReplacePermissions(string filepath, WellKnownSidType sidType, FileSystemRights allow) 
    { 
     FileSecurity sec = File.GetAccessControl(filepath); 
     SecurityIdentifier sid = new SecurityIdentifier(sidType, null); 
     sec.PurgeAccessRules(sid); //remove existing 
     sec.AddAccessRule(new FileSystemAccessRule(sid, allow, AccessControlType.Allow)); 
     File.SetAccessControl(filepath, sec); 
    }