ネットワーク ドライブからアプリを右クリックし、[Run As |] を選択すると、現在のユーザー、アプリが実行されるかどうかは、サブチェックボックス (「コンピュータとデータを不正なプログラム アクティビティから保護する」) をクリックするかどうかによって異なります。
[コンピューターを保護...] チェックボックスをオンにして [OK] ボタンを選択すると、「このアプリケーションを実行するランタイムのバージョンが見つかりません」というメッセージが表示されます。
ただし、そのチェックボックスをオフにすると、正常に動作します。
したがって、.NET ランタイムは「許可されていないプログラム アクティビティ」と見なされるようです。
別のユーザーのマシンの同じ場所 (私のものでもユーザーの C: ドライブでもないマップされたドライブ上のフォルダー) からこのアプリを実行すると、まったく起動せず、iofileloadexception エラーが発生します。しかし、知る限り、アプリが必要とする .DLL は、マップされたドライブのフォルダーと、起動プロセスが参照するテキスト ファイルにコピーされています。Visual Studio (2010) で作成された C# .exe で配布する必要がある補助ファイルを示すツールはありますか? IOW、そのようなツールは、log4net.dll、カスタムの内部フレームワーク .DLL、および前述のテキスト ファイルが必要であることを教えてくれるはずです。そしておそらく、展開されたときにアプリをユーザーのマシンで実行できるようにする何か.
更新しました
さて、特定の .exe でどのファイルを展開する必要があるかを判断できる限り、私は「道を進んでいる」かもしれないと思います。
[プロジェクト] を選択した場合 | プロパティ | 公開 | Visual Studio の Application Files を見ると、アプリと共にデプロイする必要があるファイルだけが表示されるようです。ただし、まだいくつかの問題があります (以下の括弧内に記載、および最後の爆弾):
EXE and related files:
1) <appName>.exe (duh, AKA "doh")
2) <appName>.exe.config
3) <appName>.exe.manifest (I have no such file - although I do have a file named
<appName>.vshost.exe.manifest; should I rename it by stripping out the "vshost" part of the name?)
4) <appName>.ico
DLLs:
Any non-native DLLs your project uses, such as (in this case):
<customFrameworkAssembly>.dll
log4net.dll
Devart.Data.dll
Devart.Data.Oracle.dll
ただし、別の開発者のマシンからアプリを実行できる理由は説明されていません (それらのファイルが共有ネットワーク ディレクトリに展開されていない場合でも)。