C#Windows服务:仅更新DLL

时间:2018-01-23 09:40:03

标签: c# dll service windows-services .net-3.5

我有一个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。

1 个答案:

答案 0 :(得分:0)

在我看来,答案取决于服务中如何引用dll。如果引用特定版本,则替换dll将在未找到的assemlby异常中解析。如果版本不具体,则仅取决于程序集的名称和方法,因此替换应该有效。

有关“特定版本”的更多信息,请参阅此answer