C#跨项目程序集引用-何时重新编译
假设我有两个项目,PluginA和PluginB,它们分别构建了一个DLL,PluginA.DLL和PluginB.DLL PluginA(v1.0)有一个公共字符串属性:C#跨项目程序集引用-何时重新编译,c#,.net,C#,.net,假设我有两个项目,PluginA和PluginB,它们分别构建了一个DLL,PluginA.DLL和PluginB.DLL PluginA(v1.0)有一个公共字符串属性: namespace PluginA { public static class Config { public static string SharedConfig { get; set; } } } 当该程序集加载时,该属性由PluginB(也是v1.0)设置: namespace PluginB {
namespace PluginA
{
public static class Config
{
public static string SharedConfig { get; set; }
}
}
当该程序集加载时,该属性由PluginB(也是v1.0)设置:
namespace PluginB
{
public class Loader
{
public void Initialize()
{
PluginA.Config.SharedConfig = "xyz";
}
}
}
这很好,但我很好奇在对PluginA进行某些更改后是否需要重新编译PluginB。例如,假设我将PluginA的版本更新为v1.1,并添加了一些新的、不相关的代码。PluginB是否需要重新编译,或者它是否会像新版本的PluginA一样继续工作
如果需要重新编译,是因为版本更改,还是因为代码更改,还是两者兼而有之?似乎应该按项目添加引用,以确保始终获得最新版本 让我们看一下指南。视情况而定 如果您没有使用特定版本引用PluginA,并且只要从其他程序集成员访问的插件位于samel位置,就不必重新编译。这会奏效的 虽然如果您的PluginB正在从PluginA访问常量成员,并且假设您更改了PluginA中常量成员的值,但PluginB不必重新编译,而是使用旧值。因此,您必须手动重新编译PluginB,因为当它“看到”它是常量时,它会将常量值复制到自己的清单中