【发布时间】:2019-10-24 15:28:08
【问题描述】:
我正在开发一个使用Microsoft.SqlServer.Management.Smo 的c# 程序。为了编译它,我需要明确引用相应的程序集:
csc -reference:"c:\Program Files\Microsoft SQL Server\140\SDK\Assemblies\Microsoft.SqlServer.Smo.dll" ...
我想知道这是否是预期的。我假设这些程序集在安装 SQL Server 时以某种方式“注册”(如果这是正确的术语),以便编译器和运行时环境在需要时找到它们。
如果没有注册,可以注册吗?
【问题讨论】:
-
AFAIK,通常会将引用添加到项目中,并且所有此类引用都在命令行上传递给
csc。除非程序集在 GAC 中,否则需要这样做。 -
如果系统上安装的所有DLL都被自动引用,编译时间会飞涨,想想版本问题。为什么要使用命令行编译器开始?
-
@CodeCaster 我认为你的论点意味着如果我必须引用程序集,我的机器上一切正常。我使用命令行是因为我还没有找到可行的替代方案。
-
使用 Visual Studio Code 还是 Visual Studio Community?然后,您可以制作一个项目文件,在其中组织您的参考资料。所以是的,必须手动告诉编译器您要引用哪些非标准库是正常的。 :)
-
有许多可用的构建系统。例如:MSBuild、Cake。为什么这些不是可行的解决方案?
标签: c# sql-server .net-assembly