Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 VS2010 SQL2008数据库部署脚本中的DefaultDataPath为空_Visual Studio 2010_Sql Server 2008_Database Project - Fatal编程技术网

Visual studio 2010 VS2010 SQL2008数据库部署脚本中的DefaultDataPath为空

Visual studio 2010 VS2010 SQL2008数据库部署脚本中的DefaultDataPath为空,visual-studio-2010,sql-server-2008,database-project,Visual Studio 2010,Sql Server 2008,Database Project,我有一个VS2010数据库项目,指向一个SQL2005数据库。当我部署它时,它正确地从SQL实例中获取DefaultDataPath,并且一切正常 今天,我将项目类型从SQL205更改为SQL2008,并将部署属性更改为指向我的SQL2008服务器。但是,现在当我尝试部署时,出现以下错误: Error SQL01268: .Net SqlClient Data Provider: Msg 5105, Level 16, State 2, Line 1 A file activation erro

我有一个VS2010数据库项目,指向一个SQL2005数据库。当我部署它时,它正确地从SQL实例中获取DefaultDataPath,并且一切正常

今天,我将项目类型从SQL205更改为SQL2008,并将部署属性更改为指向我的SQL2008服务器。但是,现在当我尝试部署时,出现以下错误:

Error SQL01268: .Net SqlClient Data Provider: Msg 5105, Level 16, State 2, Line 1 A file activation error occurred. The physical file name '\AutoDeployedTRS.mdf' may be incorrect. Diagnose and correct additional errors, and retry the operation.

Error SQL01268: .Net SqlClient Data Provider: Msg 1802, Level 16, State 1, Line 1 CREATE DATABASE failed. Some file names listed could not be created. Check related errors.

An error occurred while the batch was being executed.
此错误的原因是VS创建的SQL脚本包含以下三行:

:setvar DatabaseName "AutoDeployedTRS"
:setvar DefaultDataPath "\"
:setvar DefaultLogPath "\"
如果我检查SQL实例属性(通过UI或通过读取注册表),它们设置正确,因此VS2010似乎由于某种原因无法获取它们


有什么想法吗?

尝试转到位置模式对象\数据库级对象\存储\文件。
可以找到两个文件:
打开文件[your\u database\u name].sql并生成参数
FILENAME='$(DefaultDataPath)$(DatabaseName.mdf'

然后打开文件[your\u database\u name]\u log.sql并生成参数
FILENAME='$(DefaultDataPath)$(DatabaseName)\u log.ldf'


之后,尝试部署您的项目。这些参数现在是在部署期间根据当前目标数据库路径定义的。希望它能对您有所帮助。

由于某些原因,此DB项目没有数据库级的“对象”文件夹。在模式对象下,它具有函数、安全性、存储过程、表和视图。这是一个宏大的解决方案,但对于定期从模式比较中同步的数据库项目来说,这不是一个可接受的解决方案。