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

C# 如何在没有任何公共成员的情况下引用dll?,c#,sqlite,assembly-references,C#,Sqlite,Assembly References,我正在开发一个集成测试工具,它使开发人员能够针对我们的集成数据库或SQLite内存数据库执行方法 因为我的线束没有引用任何实际的SQLite代码,所以我必须添加伪代码以确保msbuild复制DLL: namespace References { internal interface IReferenceUnusedDependencies { SQLiteException e { set; } // Reference System.Data.SQLite.dll

我正在开发一个集成测试工具,它使开发人员能够针对我们的集成数据库或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
中引用代码-它包含的所有类和接口都是内部的


是否可以以某种方式进行这些引用?

将此程序集属性添加到主项目中

using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo( "MyTestDLLName" )]
重新阅读问题,您是否只需要将引用的程序集复制到bin中

如果是这样,则可以从解决方案资源管理器中的项属性下选择Visual studio中的“复制到”属性(后者反过来使用MSBuild)


在“引用”文件夹中选择引用,然后选择“复制本地”。(其他MSBuild属性也在那里可用)

只需将引用标记为“始终复制”,它与公共/私有成员无关。在项目文件中的何处标记引用“始终复制”@WiktorZychla-那么不是将其添加为引用,而是将其添加为项目根目录下的
内容
类型文件?请添加一个这样的答案,我会接受它。到
System.Data.SQLite.Linq
?但这不只是适用于您的程序集吗?如果是第三方程序集怎么办?相同的交易?@JeffMercado yes这适用于您希望显式访问您的外部程序集的外部程序集internals@arootbeer这适用于任何具有内部构件的程序集,您希望使其对外部程序集可见。好吧,但如果它是第三方程序集呢?您不能随意地将属性应用于任何程序集,如果它不是您的代码,您就不能对它做任何事情(AFAIK)。