我从https://github.com/subsonic/SubSonic-3.0下载了SubSonic 3.0.0.4源代码并使用Visual Studio 2010对其进行了编译。当我将已编译的SubSonic.Core.dll添加到我自己的项目中并尝试使用像这样的SimpleRepository时
SimpleRepository repo = new SimpleRepository(ProviderFactory.GetProvider(connectionString, "System.Data.SqlClient"), SimpleRepositoryOptions.RunMigrations);
dll崩溃了:
An unhandled exception of type 'System.TypeInitializationException' occurred in SubSonic.Core.dll
Additional information: The type initializer for 'SubSonic.DataProviders.DynamicProxyInterceptionStrategy' threw an exception.
第56行的SubSonic DbDataProvider.cs发生崩溃:
InterceptionStrategy = new DynamicProxyInterceptionStrategy(this);
如果我从项目的网站下载现成的SubSonic.Core.dll并使用它,一切正常。但是我想自己编译它,因为我稍后会尝试对它进行一些修改。
感谢
巴普
答案 0 :(得分:1)
我已成功从Git下载最新版本并在现有项目(具有Microsoft SQL数据库)中升级Subsonic。我首先编译了Subsonic.Core项目,将旧的dll与new交换,并且出现了与你相同的错误。
内部异常表明它缺少对Castle.Core的引用。只需在/ lib文件夹中添加一个对Caste.Core的引用,你就应该好了。
答案 1 :(得分:-1)
添加Castle.Core.dll,为我解决了同样的问题。