【问题标题】:SQL SMO assemblies not being deployed when publishing发布时未部署 SQL SMO 程序集
【发布时间】:2011-11-03 09:18:11
【问题描述】:

我在部署一些与 SMO 相关的程序集时遇到了一点问题。我的项目中有以下 5 个引用:

每个都是库文件夹中的一个 .dll,该文件夹是从中添加引用的位置,并且每个都设置为 Copy Local = true。项目文件显示所有这些都是有序的,例如:

<Reference Include="Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
  <HintPath>..\Libraries\Microsoft.SqlServer.Smo.dll</HintPath>
  <Private>True</Private>
</Reference>

问题是,每次我从 PC 上的 Visual Studio 发布时,都不会复制程序集。当我通过 TeamCity 发布(肯定没有安装 SQL Server 或 SMO SDK)时也是如此。我可以手动复制程序集,一切运行良好(不依赖 GAC),但显然我想将其封装在部署过程中。

是什么阻止了这些程序集的发布?

【问题讨论】:

  • 嗨,我会尝试再次将本地复制切换为 false 和 true,不确定但您在项目文件中拥有的私有 True 对我来说听起来不太好。
  • 我从默认的 Copy Local = false 开始,没有任何乐趣。 元素是在将 Copy Local 设置为 true 后添加的。

标签: .net visual-studio deployment configuration


【解决方案1】:

我相信您在部署基于 SMO 的应用程序时不应该只复制 DLL。请参阅此链接:Distributing an Application That Uses SQL Server Management Objects。我引用:

如果您开发使用 SQL Server 管理对象的应用程序, 您需要确保必要的支持文件存在于 装有应用程序的计算机。 SQL Server 2008 功能包 包含 SQL Server 管理的可再发行包 对象。

您需要从以下下载链接获取 SharedManagementObjects.msi:http://www.microsoft.com/download/en/details.aspx?id=16978

【讨论】:

  • 我之前确实看过,但它似乎需要安装服务器,我正试图在应用程序中实现 SMO 自包含。正如我之前提到的,只要将这些 SMO 组件放入目的地的垃圾箱中,一切都会正常工作。我只是不清楚他们为什么拒绝在发布过程中部署。
  • @Troy - 这不是“服务器安装”,它是官方的做法,服务器或工作站。顺便说一句,我不确定您是否真的拥有以自己的方式分发这些程序集的合法权利。但这是你自己的问题,不是我的问题 :-) 你能解释一下你所说的这个“发布过程”是什么吗?
  • 好的,所以称它为“目标环境安装”,重点是我读到了通过 msi 安装的意图,这使得部署到某些环境中变得更加棘手,然后直接包括程序集。发布过程只是通过 Visual Studio 发布功能或直接通过 msbuild 进行 Web 部署。我必须阅读细则,但您共享的链接上的文档确实谈到了“作为应用程序一部分的可再分发组件”。
【解决方案2】:

Microsoft 员工 Monica Rivera 在 MSDN thread 中确认可以将 DLL 与您的应用程序捆绑在一起:

这是另一种方式。您可以选择在 VS 项目的构建中包含必要的 DLL。如果您在项目中选择引用并将“复制本地”属性更改为True,则相应的DLL将包含在构建中。

因此,根据 MSDN 线程,两种解决方案都很好。

【讨论】:

  • 请尝试阅读此stackoverflow.com/help/deleted-answers,以进一步了解如何回答。即:“没有从根本上回答问题的答案”:仅是指向外部网站的链接
  • @RadimKöhler 这个答案显着不仅仅是一个链接。它断言可以使用功能包直接分发 DLL。该链接仅作为支持此声明的源材料提供。
  • @BlueMonkMN 好的……我错了,你是对的……祝你好运,先生
猜你喜欢
  • 2011-03-03
  • 1970-01-01
  • 1970-01-01
  • 2015-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-29
  • 1970-01-01
相关资源
最近更新 更多