构建Lightswitch应用程序时未找到键AttachDbFilename错误

时间:2015-11-02 10:29:42

标签: .net visual-studio-2012 database-connection visual-studio-lightswitch

我继承了一个我试图在Visual Studio 2012中构建的lightswitch .net应用程序(该项目最初是在VS2010中构建的,但已经升级到VS2012)但是在构建时遇到以下错误(带有项目)构建输出详细程度设置为调试):

4>  Task "UpdateDataSourceSection"
4>      Task Parameter:ConfigFile=bin\Debug\\web.config
4>      Task Parameter:Name=_IntrinsicData
4>      Task Parameter:Key=AttachDbFilename
4>      Task Parameter:Value='C:\PathToProject\Bin\Data\ApplicationDatabase.mdf'
4>      Key AttachDbFilename was not found in bin\Debug\\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添加到连接字符串中,构建错误就会消失,但如果没有连接字符串,我就无法理解它为什么会失败。

1 个答案:

答案 0 :(得分:0)

我的记忆有点粗略但是如果我没记错的话_IntrinsicData连接只适用于内部数据库(开箱即用),并且将它配置为使用外部数据库是一个噩梦。

然而,可以修改应用程序lsml文件以支持外部数据库,如下所示:Change LightSwitch internal database to external

或者,我发布过的团队在发布LightSwitch应用程序后使用部署后脚本修改了连接字符串。您正在使用的连接字符串可能是从生产环境中提取的。

总结:这不是所有其他外部数据源的问题,因此在开发环境中,我们将使用本地数据库的本地连接字符串,并在发布后修改它以利用外部数据库。

祝你好运, 克里斯。