2012-01-27 4 views
0

を使用してロードされたとき、私はSQL管理オブジェクト(Microsoft.SqlServer.Smo.dll)を使用するアプリケーションを持って作業していませんそれは作品「useLegacyV2RuntimeActivationPolicyは=真」私は、それは.NET 4で動作させるために、アプリケーションがProcess.Start

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
</startup> 

、私はそれが動作しません

System.Diagnostics.Process.Start("myApplicationThatUsesSmo.exe") 

を使用して、別のアプリケーションからこのアプリケーションを実行する場合:app.configファイルで、このブロックを挿入する必要があります。 LegacyV2Runtimeはアクティブ化されていません。

私はこの実装を使用:

http://reedcopsey.com/2011/09/15/setting-uselegacyv2runtimeactivationpolicy-at-runtime/

LegacyV2Runtimeがロードされ、それがないかどうかをチェックします。アプリケーションを直接実行した場合、またはVS2010から実行した場合、テストは成功し、Smoが機能します。

誰も私が逃していることを知っていますか?

+0

まあ、非常に奇妙な、あなたはProcess.Startを(使用する場合にapp.configファイルが動作しないことは良い理由が)確かにありません。 Windowsと同じ方法で実行可能ファイルを開始します。 Fuslogvw.exeを使用して、すべてのバインディングを記録して、洞察を得ようとします。 –

答えて

0

Nevermind。ファイル "myApplicationThatUsesSmo.exe.config"が実際に "myApplicationThatUsesSmo.exe"が起動されていたフォルダに見つかりませんでした。

「myApplicationThatCallsProcessStart.exe」の参照として「myApplicationThatUsesSmo.exe」が設定されているため、「myApplicationThatCallsProcessStart.exe」出力フォルダにコピーされます。しかし、その設定ファイルはありません。このファイルに対処するビルドイベントがありましたが、それはどのように消去され、機能しなくなったものよりもいくつかありました。

私は誰か他の人が同じような状況に直面した場合に、ここにこの答えを聞かせます。

関連する問題