我有一个指向SQL2005数据库的VS2010数据库项目。当我部署它时,它正确地从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出于某种原因无法获取它们。
有什么想法吗?
发布于 2011-11-18 05:38:37
尝试转到位置架构对象\数据库级别对象\存储\文件。
可以找到两个文件:
打开文件your_database_name.sql,将参数设置为FILENAME = '$(DefaultDataPath)$(DatabaseName).mdf'。
然后打开your_database_name_log.sql文件,将参数设置为FILENAME = '$(DefaultDataPath)$(DatabaseName)_log.ldf'。
在此之后,尝试部署您的项目。这些参数现在是根据当前目标数据库路径在部署期间定义的。希望能对你有所帮助。
https://stackoverflow.com/questions/8160756
复制相似问题