我继承了一个我试图在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
添加到连接字符串中,构建错误就会消失,但如果没有连接字符串,我就无法理解它为什么会失败。
答案 0 :(得分:0)
我的记忆有点粗略但是如果我没记错的话_IntrinsicData连接只适用于内部数据库(开箱即用),并且将它配置为使用外部数据库是一个噩梦。
然而,可以修改应用程序lsml文件以支持外部数据库,如下所示:Change LightSwitch internal database to external
或者,我发布过的团队在发布LightSwitch应用程序后使用部署后脚本修改了连接字符串。您正在使用的连接字符串可能是从生产环境中提取的。
总结:这不是所有其他外部数据源的问题,因此在开发环境中,我们将使用本地数据库的本地连接字符串,并在发布后修改它以利用外部数据库。
祝你好运, 克里斯。