C# Deploy.dacpac缺少程序集引用
我有一个SSDT(SQLServer数据库项目),它引用了一个外部的.dll(C#类库)来提供一些CLR函数。 如果我在本地部署/发布,一切正常,但使用Microsoft.SqlServer.Dac.Dac包进行远程部署 经过进一步调查,问题出现在生成的.dacpac中。不知何故,我的.dacpac文件有一个“硬编码”引用路径,它引用了我的本地开发环境,但当它在TFS上运行时,源路径是不同的 我使用以下类部署.dacpac:C# Deploy.dacpac缺少程序集引用,c#,.net,sql-server-data-tools,dacpac,C#,.net,Sql Server Data Tools,Dacpac,我有一个SSDT(SQLServer数据库项目),它引用了一个外部的.dll(C#类库)来提供一些CLR函数。 如果我在本地部署/发布,一切正常,但使用Microsoft.SqlServer.Dac.Dac包进行远程部署 经过进一步调查,问题出现在生成的.dacpac中。不知何故,我的.dacpac文件有一个“硬编码”引用路径,它引用了我的本地开发环境,但当它在TFS上运行时,源路径是不同的 我使用以下类部署.dacpac: var file = FileFinder.GetFirstF
var file = FileFinder.GetFirstFile("MyFile.dacpac");
var package = DacPackage.Load(file);
var deployOptions = new DacDeployOptions
{
BlockOnPossibleDataLoss = false,
CreateNewDatabase = true,
IncludeCompositeObjects = true
};
var dacService = new DacServices(ApplicationConfiguration.GetConnection("MyConn"));
dacService.Deploy(
package: package,
targetDatabaseName: "MyDB",
upgradeExisting: true,
options: deployOptions);
}
远程情况下,即使.dll位于.dacpac文件的同一文件夹中,错误也始终相同:
No file was supplied for reference Utilities.dll;
deployment might fail.
When C:\MyFile.dacpac was created, the original referenced file was located **C:\DEV\MAIN\UTILITIES.DLL**.
这当然是我的本地开发路径
我正在使用:
DacDeployOptions.IncludeCompositeObjects但没有任何更改。Dacpacs将按以下顺序查找引用的程序集:
- 与dacpac所在的目录相同。因此,如果您的构建系统将dacpac和引用复制到1个目录,那么部署将起作用
- 作为回退机制的原始文件路径