密钥附加数据库文件名未找到错误,构建灯开关应用程序



我继承了一个我尝试在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 应用程序后使用后期部署脚本修改了连接字符串。 您使用的连接字符串可能是从生产环境拉取的。

总而言之:对于所有其他外部数据源来说,这不是问题,因此在开发环境中,我们将对内部数据库使用本地连接字符串,并在发布后对其进行修改以利用外部数据库。

祝你好运克里斯。

最新更新