我有一个Windows服务,它依赖于一个DLL等。我已经改变了一个DLL的方法,只改变了它的内容,而不是签名。
例如,DLL中的旧方法是:
public void CalculateTaxes()
{
// Old content
}
,新方法是:
public void CalculateTaxes()
{
// New content
}
请注意,签名是相同的,我只是更改内容。
所以我的问题是:停止服务,然后只更换受影响的DLL并最终启动服务就足以使更改生效或我是否需要更换整个Windows服务?在我的情况下,只有这个DLL受到影响,其余的DLL和Windows服务是相同的(没有变化)。
我找到了这个link,但由于答案尚未被接受,根据对此答案的评论,我不确定是否只更改受影响的DLL就足够了。
我正在使用Visual Studio 2008和.NET Framework 3.5。
答案 0 :(得分:0)
在我看来,答案取决于服务中如何引用dll。如果引用特定版本,则替换dll将在未找到的assemlby异常中解析。如果版本不具体,则仅取决于程序集的名称和方法,因此替换应该有效。
有关“特定版本”的更多信息,请参阅此answer。