我有一個使用SQL管理對象(Microsoft.SqlServer.Smo.dll)的應用程序,爲了使它在.NET 4中工作,我需要在app.config文件中插入塊:「useLegacyV2RuntimeActivationPolicy = true」使用Process.Start加載應用程序時不起作用
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
它的工作原理,但如果我從另一個應用程序執行此應用程序,使用
System.Diagnostics.Process.Start("myApplicationThatUsesSmo.exe")
它不工作。 LegacyV2Runtime未激活。
我用這個實現:
http://reedcopsey.com/2011/09/15/setting-uselegacyv2runtimeactivationpolicy-at-runtime/
檢查,如果LegacyV2Runtime被加載,而事實並非如此。如果我直接運行應用程序,或者從VS2010內部運行應用程序,測試通過並且Smo工作。
任何人都知道我錯過了什麼?
好吧,很奇怪,當你使用Process.Start()時,app.config文件不起作用當然沒有什麼好的理由。它以Windows的相同方式啓動可執行文件。使用Fuslogvw.exe並記錄所有綁定以嘗試獲取一些洞察。 – 2012-01-27 18:41:28