我继承了一个我尝试在Visual Studio 2012中构建的lightswitch .net应用程序(该项目最初是在VS2010中构建的,但已升级到VS2012(,但在构建时收到以下错误(项目构建输出详细程度设置为调试(:
4> Task "UpdateDataSourceSection"
4> Task Parameter:ConfigFile=binDebug\web.config
4> Task Parameter:Name=_IntrinsicData
4> Task Parameter:Key=AttachDbFilename
4> Task Parameter:Value='C:PathToProjectBinDataApplicationDatabase.mdf'
4> Key AttachDbFilename was not found in binDebug\web.config
4>Done building project "Project.lsxproj" -- FAILED.
web.config 文件的相应部分如下所示:
<connectionStrings>
<add connectionString="Data Source=.SQLEXPRESS;Initial Catalog=ProjectAppDB;User ID=_AppUser;Password=Password;Network Library=dbmssocn" name="_IntrinsicData" providerName="System.Data.EntityClient" />
<add name="b30c548d-e3db-4bb5-86a9-e6ae9f716af4" connectionString="Data Source=.SQLEXPRESS;Initial Catalog=ProjectAppDB;User ID=_AppUser;Password=Password" />
</connectionStrings>
如果我将AttachDBFilename=|DataDirectory|db.mdf
添加到连接字符串,则生成错误会消失,但是如果没有它,我看不出为什么它首先会失败。
我的记忆有点粗略,但如果我没记错的话,_IntrinsicData连接仅适用于内部数据库(开箱即用(,并且将其配置为与外部数据库一起使用是一场噩梦。
但是,可以修改应用程序 lsml 文件以支持外部数据库,如下所示:将 LightSwitch 内部数据库更改为外部数据库
或者,我工作过的团队在发布 LightSwitch 应用程序后使用后期部署脚本修改了连接字符串。 您使用的连接字符串可能是从生产环境拉取的。
总而言之:对于所有其他外部数据源来说,这不是问题,因此在开发环境中,我们将对内部数据库使用本地连接字符串,并在发布后对其进行修改以利用外部数据库。
祝你好运克里斯。