VS2010で奇妙な問題が発生しています。 TFSを使用してAPI dllを作成し、プロジェクトでそれらを参照して、完全に信頼されたマップされたネットワークドライブを使用していました。私たちは少なくとも2年間そのように働いており、すべてが完璧に機能しました。
今日、webappをvs2010に変換し、Releaseでコンパイルすると、次のようになりました:
SGEN:エラー:ファイルまたはアセンブリ 'file:/// L:\ Api\Release API_20100521.1\Release\CS.API.Exceptions.dll'またはその依存関係の1つを読み込めませんでした。操作はサポートされていません。 (HRESULTからの例外:0x80131515)
奇妙なことは、それがデバッグプロファイルの下にあるときに動作しているということです...
追加してみました
<runtime>
<loadFromRemoteSources enabled="true" />
</runtime>
まだ運がありません( http://social.msdn.Microsoft.com/Forums/en/msbuild/thread/d12f6301-85bf-4b9e-8e34-a06398a60df0 および http://msdn.Microsoft.com/en-us/library/dd409252(VS.100).aspx )
参照されているすべてのdllがbinフォルダーにコピーされるため、コードがprodのときにネットワーク共有から実行されないため、この問題はVisual Studioまたはmsbuildからのものであると確信しています。
誰かが解決策(または単に検索パスのアイデア)を持っているなら、私に知らせてください!
編集:シリアル化アセンブリの生成がオフになったため、デバッグモードで動作していたことがわかりました。タイトルが言うように、それはパスが信頼できないと言うのはこのユーティリティであるため、実際にはSGENの問題です...
このエラーを修正するには、WindowsエクスプローラーでAssembly DLLを見つけ、右クリックして[プロパティ]を選択し、[ブロック解除]ボタンを押します。DLL =外部ストリームとしてマークしているストリームがあります-ブロック解除をクリックすると、その指定を削除します。
ビルドがネットワーク共有からdllを参照しているTFSビルドサーバーで、同じ/同様の問題が発生しました。
問題は、CLR v4セキュリティポリシーモデルが以前のバージョンから変更されており、以前のようにアセンブリをサンドボックス化していないことです。
問題を修正するには、sgen.exeの場所を見つけ、同じフォルダーに次の内容のsgen.exe.configを作成します。
<configuration>
<runtime>
<loadFromRemoteSources enabled="true" />
</runtime>
</configuration>
sgen.exeは通常
"C:\Program Files\Microsoft SDKs\Windows\v[current version]\bin\NETFX 4.0 Tools"
このブログ投稿では、.NET 4.0のCASポリシーに関する変更点のいくつかを読むことができます。 Link
同じ問題があり、設定の変更が機能しませんでした。プロジェクトプロパティで[シリアル化アセンブリの生成]をオフに設定した場合にのみ機能しました。
同じエラーが発生し、DLLが「ブロック」されたことがわかりました。エクスプローラでDLLを開き、右クリック->プロパティ-> [ブロック解除]を押します。
http://cantgrokwontgrok.blogspot.com/2009/10/visual-studio-unknown-build-error.html
これとまったく同じ問題があり、C:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Toolsの下にsgen.exe.configを追加して修正しました
他の人が言ったように、この単純な設定で
<?xml version ="1.0"?>
<configuration>
<runtime>
<loadFromRemoteSources enabled="true" />
</runtime>
</configuration>
TFSビルドサービスの64ビットバージョンを実行している人のために、次のパスに構成ファイルを作成する必要がありました。
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\x64
ファイルの内容:
<?xml version ="1.0"?>
<configuration>
<runtime>
<loadFromRemoteSources enabled="true" />
</runtime>
</configuration>
私の場合、以下のスニペットをapp.configファイルに追加するとうまくいきました。 VS2010 Service Pack 1でWindows XPを実行しています。
<configuration>
<runtime>
<loadFromRemoteSources enabled="true" />
</runtime>
</configuration>
私は同じ問題を抱えていて、GACにアセンブリをロードして働いた
unblock
もconfig
も役に立たなかった。私にとってのトリックは、 caspol
に関するこのヒント でした。走った
%windir%\Microsoft.NET\Framework\v2.0.50727\CasPol.exe -m -ag 1.2 -url file://UncPathName/UncSubPath/* FullTrust
そして、VisualStudioを再起動する必要もありませんでした。
私のような場合には、dllファイルのプロパティにUnblockが表示されないため、Unblockは解決策ではありませんでした。探し続け、ソリューションファイルを閉じて、プロジェクトslnファイルへのネットワークUNCパスの代わりにローカルのC:コピーを使用して再度開きました。このルートを行った後に公開できました。
参考までに、Windows 7を実行している場合、sgen.exeファイルは次の場所にあります。
C:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools
Sgen.exe.configを作成してそこに配置しなければならなかったので、この問題はなくなりました。
同様の問題が発生したため、ソリューションのPropertiesフォルダーにあるlicenses.licxファイルを削除することでようやく解決しました。