In Visual Studio, when do you have to add a reference to a dll? I always try to have a minimum of references in my projects, I try to only include the ones that are really necessary.
I would think that I only need a reference if I have a using
statement in my source. But that's not always enough.
For instance, I have a very simple program that is using
System and Microsoft.Practices.EnterpriseLibrary.Data:
using System;
using Microsoft.Practices.EnterpriseLibrary.Data;
public class SimpleConnection {
private static void Main() {
var database = DatabaseFactory.CreateDatabase();
var command =
database.GetSqlStringCommand(
"select table_name from information_schema.tables");
using (var reader = database.ExecuteReader(command)) {
while (reader.Read()) {
Console.WriteLine(reader.GetString(0));
}
}
}
}
I would think I only have to reference System and Microsoft.Practices.EnterpriseLibrary.Data. But that's not true. If I don't reference System.Data, the code won't compile.
The type
'System.Data.Common.DbCommand' is
defined in an assembly that is not
referenced. You must add a reference
to assembly 'System.Data,
Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089'.
How can I know beforehand when I have to add a reference to something I'm not using
?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…