gpt4 book ai didi

wcf - SSDT 添加要部署的程序集

转载 作者:行者123 更新时间:2023-12-05 01:35:54 27 4
gpt4 key购买 nike

我有一个旧项目,它使用 WCF 与 SQL Server 的 C# CLR 触发器。我总是通过运行脚本来安装它。

但我决定在 VS 2012 上继续研究 SSDT 项目。我已经从空数据库中导入了项目。
WCF 功能依赖于来自 .net 框架的几个程序集

SMdiagnostics
System.Web
System.Messaging
system.identitymodel
system.identitymodel.selectors
microsoft.transactions.bridge
System.ServiceModel

所以我在我的项目中有对这些 dll 的引用。我还将它们添加到我的项目下的程序集子文件夹中。

但是,当我创建部署脚本时,这些程序集不在其中。

因此,当我尝试将脚本发布到数据库时,我收到一个错误。

Assembly 'system.servicemodel, version=3.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089.' was not found in the SQL catalog.



如果我尝试创建自定义脚本以将程序集添加到 db :
create assembly [SMdiagnostics]
from 'C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\SMdiagnostics.dll'
with permission_set = unsafe
go

我收到错误

Error: SQL70502: The assembly source is not valid. Only binary literals are allowed.



如何从 .NET 添加要与我的 SSDT 项目一起部署的程序集?

谢谢。

最佳答案

要将 .NET 程序集添加到 SSDT 项目:

  • 在解决方案资源管理器中,展开项目并右键单击引用。
  • 在“添加引用”窗口中,浏览装配体或从装配体类别中进行选择。
  • 右键单击​​添加的程序集,然后单击属性。
  • 确保设置了这些属性:
  • 生成 Sql 脚本:真
  • 模型感知:真实
  • 权限集:安全/外部/不安全(取决于程序集)
  • 按 F5 部署到 LocalDB/Debug 目标或选择 Publish and Generate Script 以验证更改。

  • DACPACs(SSDT 构建的结果)不允许使用路径创建组件,因为不包含 DLL 并且无法在另一台主机上保证路径。因此,DACPAC 中只允许嵌入二进制文字。

    关于wcf - SSDT 添加要部署的程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19770220/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com