DLLのプロパティのブロック解除をして、ダウンロードしたプログラムを起動出来るようにする。ダウンロードしたプログラムが実行できない時の対処法。

投稿日:2017-07-31

よくありますよね・・・

予期せぬエラーってなんだよ(`・∀・´)

特にお客さんの目の前で「デンッ!!」っていうエラー音と共に表示された時の微妙な空気感がたまりません

(╹◡╹)

(^ω^)

:(;゙゚’ω゚’):

こんな感じで心の中はドッタンバッタン大騒ぎになります。

いや、普通は無いかも・・・っていうか、あっちゃダメなんですけどね。

今回は、客先で起こったわけじゃないんですが、今後起こりうえう可能性もあるので、メモとして残しておきましょう。

今、開発中のプログラムなんですが、正式な配布用ビルドはサーバーで実行してる訳です。

で、各自がアップロードされたEXE等をDLして最新の実行環境としてる。

このダウンロードするってのが曲者でした。

普段、機能テストぐらいだと、自分の環境でビルドしたもので済ませてしまうので、わざわざパッケージをDLすることは無いんですが、リリースバージョンの兼ね合いもあって、久しぶりにDLしました。

そしたら、起動できない。

件のプログラムなんですが、メニュー画面があって、ボタンを押すと対応する画面のDLLの呼び出しで画面を起動するんですが、無慈悲にエラーが出ますw

 

原因は?

幸いというか、エラーをログに吐いてくれているので内容を確認すると、下記の内容が。

System.NotSupportedException: ネットワーク上の場所からアセンブリを読み込もうとしました。これにより、以前のバージョンの .NET Framework で、アセンブリがサンドボックス化された可能性があります。このリリースの .NET Framework では、CAS ポリシーが既定で有効になっていないため、この読み込みは危険な場合があります。この読み込みがアセンブリのサンドボックス化を目的としない場合は、loadFromRemoteSources スイッチを有効にしてください。詳細については、http://go.microsoft.com/fwlink/?LinkId=155569 を参照してください。

ƪ(˘⌣˘)ʃ

いや、意味わかんないってw

サンドボックス化ってなんですか?って感じです。

正直、自分の開発スキルは高くないので、こういうエラーには滅法弱いですw

知ってる人には、何てこと無いエラーなんでしょうけど、エラーダイアログしか出ないので、パッと見でそこまで推察は出来ないわ・・・

詳細についてのリンク先も英語のページだったので、一瞬でブラウザのタブを閉じたし。

英語のページはどうにも日本語のページが見つからないような時は、単語を拾いながら読みますが、基本、日本語のページを探し求めます。

困った時のGoogle先生ってことで、ネットワーク上の〜って検索すると出てきました。

方法: Visual Studio で Web からダウンロードしたアセンブリを使用する
https://msdn.microsoft.com/ja-jp/library/ee890038.aspx

 

手順

ファイルのプロパティを開く。

ブロックの解除をクリック。

OK(または適用)ボタンをクリック。

以上。

これだけです。

ネットでDLしてきたけど、動かないっていう原因の一つだと思う。

ただ、面倒くさいのは、コレを全てのDLLに対してやる必要があるってこと・・・

DLLだけで200個くらいあるんですが、何かいい方法は無いものか・・・







-C#, 開発メモ
-, ,


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

OracleDataaccessでどハマリして、勉強になったとかじゃなくお客さんに迷惑かけたし、もう穴を掘って埋まりたい

みんなは、どうやってOracleDataaccessを筆頭に、複数バージョンが入り乱れるDLLを管理してるのか教えてください。 マジで。

[Oracle]regexp_replaceで、改行コード・タブとかのCSV出力時に邪魔になるものを消す

通常、スペースを消したい時とかなら、replaceとかtrimとかで一括で処理してたんだけど、CSVに出力したい時に、複数の処理を纏めるのがスゲェ面倒くさかった。 それがregexp_replaceで …

TortiseSVNなんだけど、自分が原因で「already locked」が出てしまった時の対処法。自分がロックを取ってて、ロックが取れずコミットが出来ない事態に遭遇した・・・

SVNを使っていると、たまにありますね。 ロックが既に誰かに取得されていて、コミットしようとした時に、唖然とするやつ。 ただ、今回は状況が違いました。 いつもなら、「ロック取ってるやつ誰だよ~」って感 …

C#でTryParseメソッドを使って文字列が数値かどうかを確認する

C#に限らず、コーディングしていると数値が欲しいのに、引数がstring型とかいう状況がよくあるわけで。 判定方法はいろいろあるけど、TryParseを使うと簡単だった。 TryParseって何するの …

[C#]DateTimePickerは、CloseUpイベントで日付変更を取得する

日付関連で、取得した値がどうか?ってのを検出して判定する必要が出たのでメモ。 CloseUpイベントで何が判定されるのか? https://msdn.microsoft.com/ja-jp/libra …


カテゴリー