发布时未部署SQL SMO程序集

Tro*_*unt 12 .net deployment configuration visual-studio

关于部署与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>
Run Code Online (Sandbox Code Playgroud)

问题是,每次我从PC上的Visual Studio发布时,都不会复制程序集.当我通过TeamCity发布时(确实没有安装SQL Server或SMO SDK).我可以手动复制程序集,运行正常(没有GAC依赖),但显然我想在部署过程中封装它.

什么可以阻止这些集合发布?

Sim*_*ier 12

我相信你不应该在部署基于SMO的应用程序时复制DLL.请参阅此链接:分发使用SQL Server管理对象的应用程序.我引用:

如果您开发使用SQL Server管理对象的应用程序,则需要确保计算机上随应用程序提供必要的支持文件.SQL Server 2008功能包包含SQL Server管理对象的可再发行组件包.

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

  • @Troy - 这不是"服务器安装",它是官方的方式,服务器或工作站.顺便说一下,我不确定你是否拥有以自己的方式分发这些程序集的合法权利.但这是你自己的关注,而不是我的:-)你能解释一下你所说的"发布过程"是什么吗? (2认同)