如何在没有任何公开成员的情况下引用dll?

时间:2012-07-03 15:03:00

标签: c# sqlite assembly-references

我正在开发集成测试工具,使开发人员能够针对我们的集成数据库或针对SQLite内存数据库执行方法。

因为我的线束没有引用任何实际的SQLite代码,所以我必须添加虚拟代码以确保msbuild复制DLL:

namespace References {
    internal interface IReferenceUnusedDependencies {
        SQLiteException e { set; } // Reference System.Data.SQLite.dll
        IMappingEngineRunner r { set; } // Reference AutoMapper.dll
    }
}

但是,我无法弄清楚如何引用System.Data.SQLite.Linq.dll中的代码 - 它包含的所有类和接口都是内部的。

是否有可能以某种方式制作这些参考文献?

1 个答案:

答案 0 :(得分:0)

将此装配属性添加到主项目

using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo( "MyTestDLLName" )]

重新阅读问题,你只需要将引用的装配复制到你的垃圾箱吗?

如果是这样,您可以在解决方案资源管理器的项目属性下选择Visual Studio中的属性复制(后者又使用MSBuild)。

在References文件夹中选择引用,然后选择copy local。 (其他MSBuild属性也可用)