# Please add strong names to Hangfire assemblies

**URL:** <https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339>\
**Category:** feature\
**Created:** [October 30, 2014, 5:10am UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339 "2014-10-30T05:10:21Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![phaedrus30](https://avatars.discourse-cdn.com/v4/letter/p/898d66/32.png) [@phaedrus30](https://discuss.hangfire.io/u/phaedrus30)\
**Post date:** [October 30, 2014, 5:10am UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/1 "2014-10-30T05:10:21Z")

</div>

Could strong names PLEASE be added to Hangfire assemblies - we have to sign all our application assemblies with strong names, which means we can’t use Hangfire at all.

We really want to try this framework but we can’t even get started because of this.

Thanks!

Sam

---

<div class="post-metadata">

**Author:** ![scott\_stafford](https://dub1.discourse-cdn.com/flex017/user_avatar/discuss.hangfire.io/scott_stafford/32/81_2.png) [@scott\_stafford](https://discuss.hangfire.io/u/scott_stafford)\
**Post date:** [October 31, 2014, 1:29pm UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/2 "2014-10-31T13:29:58Z")

</div>

I also want them signed as it makes life easier, but you can certainly self-sign them, it’s just a nuisance. This will do it, for instance:

```
ildasm /all /out=tempfile.il hangfire.dll
ilasm /dll /key="path_to_your_own.snk" tempfile.il

```

Also, maybe easier depending on your comfort levels, you can just get the source code and add the signature file the same way you do to your own DLLs.

---

<div class="post-metadata">

**Author:** ![dhlavaty](https://dub1.discourse-cdn.com/flex017/user_avatar/discuss.hangfire.io/dhlavaty/32/47_2.png) [@dhlavaty](https://discuss.hangfire.io/u/dhlavaty)\
**Post date:** [November 4, 2014, 8:44am UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/3 "2014-11-04T08:44:21Z")

</div>

Yes, but the whole point of NuGet is gone.

Honestly, Hangfire is first Nuget package, that I have found unsigned. I don’t think it is that hard to create signed NuGet packages.

---

<div class="post-metadata">

**Author:** ![J03](https://avatars.discourse-cdn.com/v4/letter/j/48db29/32.png) [@J03](https://discuss.hangfire.io/u/J03)\
**Post date:** [December 8, 2014, 7:26pm UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/4 "2014-12-08T19:26:25Z")

</div>

I agree. Please _please_ add strong naming to the assemblies from nuget. I notice that Dapper, which I think was the only remaining unsigned dependencies of Hangfire.Core introduced strong naming about 2 months ago. This hopefully means it’s now much easier to start signing the Hangfire assemblies.

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![odinserj](https://dub1.discourse-cdn.com/flex017/user_avatar/discuss.hangfire.io/odinserj/32/648_2.png) [@odinserj](https://discuss.hangfire.io/u/odinserj)\
**Post date:** [December 8, 2014, 9:19pm UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/5 "2014-12-08T21:19:08Z")

</div>

Guys, can you tell me _why_ do you need strong naming? Is it your company’s policy or anything else? The fact that the upcoming AspNet vNext / CoreCLR from Microsoft doesn’t support nor use strong naming means that strong naming is effectively dead for server side .NET development. However, I understand that some companies use different policies.

Strong naming is a lot of work, including further topic investigation (and reading [this looong discussion](https://github.com/octokit/octokit.net/issues/405)) so I want to know the real reason before making and decisions.

---

<div class="post-metadata">

**Author:** ![phaedrus30](https://avatars.discourse-cdn.com/v4/letter/p/898d66/32.png) [@phaedrus30](https://discuss.hangfire.io/u/phaedrus30)\
**Post date:** [December 8, 2014, 9:45pm UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/6 "2014-12-08T21:45:59Z")

</div>

I’ve already posted why we need it in this thread.

> [@Why we need Hangfire to be strongly named](http://discuss.hangfire.io/t/why-we-need-hangfire-to-be-strongly-named/405):
>
> I’ve posted on this before but I want to re-iterate why it is important to us, and I would really like to know when it will become available. We are required for compliance reasons to strong name all our application assemblies - because Hangfire is not strongly named, we simply cannot use the default NuGet distribution. In order to use Hangfire, I had to do the following: Use the Nivot package from NuGet to apply a strong name to unsigned assemblies (Dapper, HangFire.Core, HangFire.SqlServe…

I don’t care what vNext is doing - we need this support now. If things change in the future, then so be it.

Plus, I’ve already strong named Hangfire myself, it took me 5 minutes, so I don’t know what could possibly be the issue for you to do it from your side.

---

<div class="post-metadata">

**Author:** ![odinserj](https://dub1.discourse-cdn.com/flex017/user_avatar/discuss.hangfire.io/odinserj/32/648_2.png) [@odinserj](https://discuss.hangfire.io/u/odinserj)\
**Post date:** [December 8, 2014, 10:32pm UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/7 "2014-12-08T22:32:32Z")

</div>

@phaedrus30, thank you for that informative post. I believe that you do need the strong naming, otherwise you’d never do the described actions. However, I should understand the _exact reason_ to make the decision, i.e. what do you mean by the following words:

> We are required for compliance reasons to strong name all our application assemblies

Strong naming a given set of assembly files for one’s company needs really takes 5 minutes. But you are asking me to make a project level decision, so please don’t tell me about 5, 48 or 132 minutes, as the consequences of such decisions stay for months and years. I’m sure people in that long discussion aren’t talking about non-meaningful stuff.

---

<div class="post-metadata">

**Author:** ![J03](https://avatars.discourse-cdn.com/v4/letter/j/48db29/32.png) [@J03](https://discuss.hangfire.io/u/J03)\
**Post date:** [December 8, 2014, 11:32pm UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/8 "2014-12-08T23:32:41Z")

</div>

Thanks for the reply Sergey. Essentially it’s standard practice on my projects because we do a lot of SharePoint development. SharePoint forces us to use the GAC, which requires us to use strongly named assembly references. Sadly, Hangfire is the first instance where I’ve installed a Nuget package to find that the assembly is not signed.

I totally understand your position and I’m not sure what I’d do in your shoes! SharePoint is unlikely to be a major consideration for you. There are workarounds available for us, but they are a little disappointing and hacky. I’ve forked your repo and made a commit [here](https://github.com/J03/Hangfire/commit/a08c0a88c48096af25ce7bd3ea7c7b9d5f8ed874). It was a little fun to unravel and I’m still also dependent on [Nivot](https://www.nuget.org/packages/Nivot.StrongNaming/) to sign the other remaining unsigned references pulled down from nuget.

Apart from this, Hangfire has been a joy / lifesaver to work with, so thanks!

---

<div class="post-metadata">

**Author:** ![phaedrus30](https://avatars.discourse-cdn.com/v4/letter/p/898d66/32.png) [@phaedrus30](https://discuss.hangfire.io/u/phaedrus30)\
**Post date:** [December 9, 2014, 3:43am UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/9 "2014-12-09T03:43:07Z")

</div>

Hi Sergey,

We are an ISV with Microsoft Gold partner status - in order to maintain this status, our application must be tested by Microsoft on a consistent basis, and one of the rules of testing is that any .NET assemblies used or produced by the application must have both a strong name and digital signature applied.

If we don’t comply, we don’t keep Gold partner status, which is critical to our business.

I understand that there is debate on whether strong names should be applied or not, but Hangfire really is in the minority here. Almost every 3rd party library I have ever used has used strong naming, purely to be as accessible as possible.

If strong names become redundant in the future then everyone will have to adapt, but right now our hand is forced.

Hangfire is extremely useful for us and we really want to continue using it as it solves a lot of otherwise difficult problems, but we are also dependent on a couple of big hacks to use it in our software.

Can you please describe why you are opposed to strong naming, and what makes it a major decision? I’m really not meaning to be rude and I apologise if I am coming across that way, I just want to understand why this is not a simple update for future releases.

---

<div class="post-metadata">

**Author:** ![LucasPereira](https://dub1.discourse-cdn.com/flex017/user_avatar/discuss.hangfire.io/lucaspereira/32/139_2.png) [@LucasPereira](https://discuss.hangfire.io/u/LucasPereira)\
**Post date:** [January 16, 2015, 7:11pm UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/10 "2015-01-16T19:11:01Z")

</div>

Our company is in the same way. We aren’t Gold yet, but Silver on the go to Gold.  
As others comment here, was strange for us too see an NuGet assembly not signed. sick.

As @phaedrus30 asked:

> [@phaedrus30](#):
>
> Can you please describe why you are opposed to strong naming, and what makes it a major decision? I’m really not meaning to be rude and I apologise if I am coming across that way, I just want to understand why this is not a simple update for future releases.

---

<div class="post-metadata">

**Author:** ![Yanal-Yves](https://dub1.discourse-cdn.com/flex017/user_avatar/discuss.hangfire.io/yanal-yves/32/586_2.png) [@Yanal-Yves](https://discuss.hangfire.io/u/Yanal-Yves)\
**Post date:** [April 2, 2016, 2:05pm UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/11 "2016-04-02T14:05:20Z")

</div>

Hello @sergey,

Thank you for this incredible library!

It looks like assembly signing will be supported in [ASP.NET](http://ASP.NET) 5:  
[http://blog.3d-logic.com/2015/11/15/creating-and-using-strong-named-assemblies-in-asp-net-5/](http://blog.3d-logic.com/2015/11/15/creating-and-using-strong-named-assemblies-in-asp-net-5/)

Moreover signing is part of the best practices recommanded by Microsoft as part of rule CA2210.  
Justification of the rule is given by MSDN:  
[https://msdn.microsoft.com/en-us/library/ms182127.aspx](https://msdn.microsoft.com/en-us/library/ms182127.aspx)

So why wouldn’t you sign the assembly now?

Yanal

---

<div class="post-metadata">

**Author:** ![smith288](https://dub1.discourse-cdn.com/flex017/user_avatar/discuss.hangfire.io/smith288/32/183_2.png) [@smith288](https://discuss.hangfire.io/u/smith288)\
**Post date:** [April 22, 2016, 12:37pm UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/12 "2016-04-22T12:37:49Z")

</div>

I’ve always hated this type of attitude. “We need it so adjust your entire project path to suit us when we could take 5 min of our own life to do it ourselves”

---

<div class="post-metadata">

**Author:** ![willianmaja](https://avatars.discourse-cdn.com/v4/letter/w/cc9497/32.png) [@willianmaja](https://discuss.hangfire.io/u/willianmaja)\
**Post date:** [August 23, 2016, 8:52pm UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/13 "2016-08-23T20:52:03Z")

</div>

I think a little bit differently… They could fix this problem to save 5 min of everybody else… but that’s just my 2 cents.

---

<div class="post-metadata">

**Author:** ![tynorton](https://dub1.discourse-cdn.com/flex017/user_avatar/discuss.hangfire.io/tynorton/32/827_2.png) [@tynorton](https://discuss.hangfire.io/u/tynorton)\
**Post date:** [December 15, 2016, 6:05pm UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/14 "2016-12-15T18:05:04Z")

</div>

Any progress here? Hangfire is one of a handful of NuGet packages that are not signed, and are throwing all kinds of chaff into our dependency chain.

We distribute a licensed web application, and require strong name signing to ensure the integrity of our licensing code is not compromised.

We have actually had to maintain a fork of the Hangfire codebase which we sign ourselves, and it would be much easier for us to track updates if Hangfire was signed by default.

---

<div class="post-metadata">

**Author:** ![marcoCasamento](https://dub1.discourse-cdn.com/flex017/user_avatar/discuss.hangfire.io/marcocasamento/32/3059_2.png) [@marcoCasamento](https://discuss.hangfire.io/u/marcoCasamento)\
**Post date:** [May 17, 2017, 2:22pm UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/15 "2017-05-17T14:22:57Z")

</div>

I’ve got yet another scenario where a signed version would be useful.

I maintain an [open source Storage of Hangfire based on Redis](https://github.com/marcoCasamento/Hangfire.Redis.StackExchange) and anyone who also uses [Redis Asp.Net Cache provider](https://github.com/Azure/aspnet-redis-providers/) must use [StackExchange.Redis.StrongName](https://www.nuget.org/packages/StackExchange.Redis.StrongName/) can’t use that storage due to Assembly naming loading conflict.

Thanks to [@ryanelian](https://github.com/ryanelian) who created a Strong-named version of this storage, we could solve the problem for anyone who uses [Redis Asp.Net Cache provider](https://github.com/Azure/aspnet-redis-providers/) but we’d need a signed version of Hangfire.Core.

Any chance to accept a PR ?

---

<div class="post-metadata">

**Author:** ![Mohammed](https://avatars.discourse-cdn.com/v4/letter/m/13edae/32.png) [@Mohammed](https://discuss.hangfire.io/u/Mohammed)\
**Post date:** [February 13, 2019, 8:13am UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/16 "2019-02-13T08:13:54Z")

</div>

Good Day All

Can anyone please help me with this error I am trying to run the Yoco job locally but I am getting the below error, I have googled and tried a few things but it does not work it still gives me the same error.

 ![image](https://europe1.discourse-cdn.com/flex017/uploads/hangfire/original/2X/f/fafb5a79b8c314e2901376a4a7840c3c5f279159.png)

---

<div class="post-metadata">

**Author:** ![SteveSartain](https://avatars.discourse-cdn.com/v4/letter/s/bb73d2/32.png) [@SteveSartain](https://discuss.hangfire.io/u/SteveSartain)\
**Post date:** [June 13, 2019, 9:36am UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/17 "2019-06-13T09:36:12Z")

</div>

I’m in the general consensus that the HangFire assemblies should be signed

I agree it’s something that we can all do ourselves. However rather than push back asking why we all want it (plenty of valid reasons mentioned above), maybe you should tell us why you are resisting doing it? The fact that MS will or may not support it in the future will not wash. There is plenty of legacy code out there in production that needs this resolving.

I’m in the same boat, we have a policy that must be enforced which means we have to manually sign them each time we upgrade and of course, this negates the ease of using nuget for deployment. We are also a Pro subscriber and use the product in production

---

<div class="post-metadata">

**Author:** ![Denford29](https://avatars.discourse-cdn.com/v4/letter/d/f4b2a3/32.png) [@Denford29](https://discuss.hangfire.io/u/Denford29)\
**Post date:** [September 23, 2020, 6:43am UTC](https://discuss.hangfire.io/t/please-add-strong-names-to-hangfire-assemblies/339/18 "2020-09-23T06:43:32Z")

</div>

Any update on this, just installed Hangfire in a project which gets signed and wont build now because hangfire isnt signed .
