如何从命令提示符编译引用其他程序集的C#DLL?

Cut*_*ute 1 .net c#

我创建了一个C#控制台应用程序,其中包含命名空间SystemSystem.Data

另外,我补充说Microsoft.SqlServer.Smo.

当我尝试从命令提示符编译时,它显示错误为:

SqlSmoDiscovery.cs(3,27):错误CS0234:命名空间"Microsoft.SqlServer"中不存在类型或命名空间名称"Management"(您是否缺少程序集引用?)SqlSmoDiscovery.cs(4,27):error CS0234:名称空间"Microsoft.SqlServer"中不存在类型或命名空间名称"管理"(您是否缺少程序集引用?)

但它是从Visual Studio编译的.

我正在从命令提示符编译输出为纯C#dll.

我的项目:

然后我导航到G:\ SqlDisc:> csc/target:library/r Micrsoft.SqlServer.Smo.Dll

SqlSmoDiscovery.cs,但它显示erroe为

错误CS0006:找不到元数据文件"Microsoft.SqlServer.Smo.dll"

Jon*_*eet 9

使用该/r标志从命令行引用其他程序集.

csc /target:library /r:OtherAssembly.dll Foo.cs
Run Code Online (Sandbox Code Playgroud)

  • 在编译时不必将程序集放在同一个文件夹中.您可以按完整路径引用程序集.在运行时,需要可以访问程序集:通常在本地目录或GAC中.假设您引用了GAC的程序集,那么您可以在csc.exe命令中将其指定为c:\ Windows\assembly\GAC\DataGridEx\1.0.1.0__852e0362e1c80f34\DataGridEx.dll.在运行时,GAC程序集将被正确加载,无需将其复制到任何地方. (2认同)