【发布时间】:2020-11-09 16:48:58
【问题描述】:
我想使用.MDF SQL Server 数据库文件,在通过 DevOps 管道部署时,我在 Visual Studio 测试期间对其执行单元测试。
我将.MDF 和.LDF 文件添加到单元测试项目中,并且可以在本地执行。我已使用列出文件夹内容的 PowerShell 脚本确认文件已正确部署到管道。我还通过确保所有内容都是大写来确认区分大小写。
将 Visual Studio 测试步骤添加到现有工作管道时,我最初在测试初始化期间尝试保存到数据库时收到此错误:
Microsoft.Data.SqlClient.SqlException:无法更新数据库“D:\A\1\S\APPCORETESTS\BIN\RELEASE\NETCOREAPP3.1\MYTESTDATABASE.MDF”,因为数据库是只读的
我在测试初始化期间添加了以下调用:
ALTER DATABASE [MYTESTDATABASE.MDF] SET READ_WRITE
现在出现以下错误:
无法打开物理文件“D:\a\1\s\AppCoreTests\bin\Release\netcoreapp3.1\MYTESTDATABASE.mdf”。操作系统错误5:“5(拒绝访问。)”
无法打开物理文件“D:\a\1\s\AppCoreTests\bin\Release\netcoreapp3.1\myTestDatabase_log.ldf”。操作系统错误 5:“5(拒绝访问。)”。
我可以使用以下连接字符串(来自配置,因此两个反斜杠“\”)打开到 .MDF 文件的连接:
"Server=(LocalDB)\\MSSQLLocalDB;AttachDbFileName='|DataDirectory|\\MYTESTDATABASE.MDF'"
并且我能够运行一个返回多个数据库的查询,包括我的(以及 tempdb、master 等):
select name from sys.databases
如果此错误发生在本地,我将为 .MDF / .LDF 所在的文件夹设置文件夹权限,但不知道这在 DevOps 管道中是否可行,或者是否是正确的方法来解决这个问题。
【问题讨论】:
标签: azure-devops mdf