よくありますよね・・・
いや、普通は無いかも・・・
今、開発中のプログラムなんですが、正式なビルドはサーバーで実行してる訳です。
で、各自がアップロードされたEXE等をDLして最新の実行環境としてる。
普段、機能テストぐらいだと、自分の環境でビルドしたもので済ませてしまうので、わざわざパッケージをDLすることは無いんですが、リリースバージョンの兼ね合いもあって、久しぶりにDLしました。
そしたら、起動できない。
DLLの呼び出しで画面を起動するんですが、無慈悲にエラーが出ますw
おなじみのエラー音も相まって楽しい気分にはなれません・・・
原因は?
幸いというか、エラーをログに吐いてくれているので内容を確認すると、下記の内容が。
System.NotSupportedException: ネットワーク上の場所からアセンブリを読み込もうとしました。これにより、以前のバージョンの .NET Framework で、アセンブリがサンドボックス化された可能性があります。このリリースの .NET Framework では、CAS ポリシーが既定で有効になっていないため、この読み込みは危険な場合があります。この読み込みがアセンブリのサンドボックス化を目的としない場合は、loadFromRemoteSources スイッチを有効にしてください。詳細については、http://go.microsoft.com/fwlink/?LinkId=155569 を参照してください。
いや、意味わかんないってw
サンドボックス化ってなんですか?って感じです。
知ってる人には、何てこと無いエラーなんでしょうけど、エラーダイアログしか出ないので、パッと見でそこまで推察は出来ないわ・・・
詳細についてのリンク先も英語のページだったので、一瞬でブラウザのタブを閉じたし。
困った時のGoogle先生ってことで、ネットワーク上の~って検索すると出てきました。
方法: Visual Studio で Web からダウンロードしたアセンブリを使用する
https://msdn.microsoft.com/ja-jp/library/ee890038.aspx
手順
ファイルのプロパティを開く。
ブロックの解除をクリック。
OK(または適用)ボタンをクリック。
以上。
これだけです。
ネットでDLしてきたけど、動かないっていう原因の一つだと思う。
ただ、面倒くさいのは、コレを全てのDLLに対してやる必要があるってこと・・・
DLLだけで200個くらいあるんですが、何かいい方法は無いものか・・・