我们假设我有三个集会:
A.dll
没有参考。B.dll
有A.dll
的文件或项目引用。C.exe
有一个对A.dll
的项目引用,并在运行时使用反射加载插件B.dll
。到目前为止,一切都按预期工作。
现在让我们假设我有一个这三个程序集的设置项目,我想提供
A.dll
,B.dll
和C.exe
)B.cs
的项目输出/源文件(B.csproj
和B.dll
)。如果插件B.dll
正在使用A.dll
的文件引用,并且我在B.csproj
项目文件中设置了安装文件夹的引用路径,那么安装该软件的用户,能够重建B.dll
。
另一方面,如果插件B.dll
正在使用对A.dll
的项目引用,那么安装该软件的用户必须用对{{1}的文件引用替换损坏的项目引用。 }}
通常我更喜欢在同一解决方案中使用项目引用,请参阅Project Reference Vs File Reference?。
那么如何使用项目引用并避免用户必须替换插件A.dll
的损坏的项目引用?
BTW:我正在使用Visual Studio 2013。