If, like me, you have more than one Github account, (one for work and one private), then you might want to switch accounts when using Visual Studio
My private account does not have CoPilot, so it has a little fit when I try and open visual studio.
Now if you click on the link … it takes me to Github and, it doesn’t matter what I do, my credentials are not changed from my private account to my work account.
The solution is simply to force Github to forget about you
Close Visual Studio
Probably Close VS Code as well … not sure
Go to %localappdata%\github-copilot, (your local app data folder, something like C:\Users\%USERNAME%\AppData\Local\github-copilot)
Delete the files hosts.json and versions.json
Make sure you are logged in the correct Github account, (with Edge or Chrome or whatever).
Restart Visual Studio, you should get logged in auto-magically into your ‘correct’ github account, otherwise you can just login when prompted.
And that’s all, if you are not sure about deleting files you can just rename the folder “github-copilot” to something else, and if things go wrong just rename it back.
If you are not sure or comfortable with deleting, renaming and so on … don’t do it. … you probably should not be developing either in that case, but that’s another problem I guess.
Strong naming basically helps to make sure that other assemblies can be 100% sure that they are using the correct assembly and they there has been no messing around
In reality, this not a 100% secure process, but it does help in most cases to add a certain amount of safeguard.
And in any case, a lot of applications require it, and if your app is not strong named, then they will not be able to use it.
How to add strong name to my assemblies
The process is fairly straight forward, (surprisingly so), and you don’t need to worry about Visual Studio until the end.
On your system locate the file called sn.exe, (in my case, I had a few of them, the actual version does not matter, but I chose the latest one I have).
Open a command line with Administrator privilege, (might not be required, but I don’t know how secure your system is).
Navigate to the folder where that exe is located.
Create a key … any key, just make sure you give it a name that matters to your application
Now get the public key for your application sn -p "myassembly.snk" "pmyassembly.snk" I added the letter “P” in front of my strong name key … so I know it is the public key … but really, you can call it whatever you want.
You might also want your public key as a string value sn -tp "pmyassembly.snk"
Or you can be one of the cool kids and output to your clipboard sn -tp "pmyassembly.snk" |clip And then you can paste it where ever
I really suggest that you move the file, (with a better name), to your directory
Then fire up your visual studio project
Look for the properties
Select the signing tool
And check “sign the Assembly”
Annoyingly enough, Visual Studio will move the file where it feels it should be, (next to the *.csproj), if you really want it somewhere else, just edit the *.csproj file and change the location yourself. Or don’t, whatever.
Build it
Ship it
What about my Unit tests?
If you have unit tests running and you are testing internal classes … then you will need to add the public key, (see above), to your InternalsVisibleTo( … )
At the end of the day, this is pretty much what consumers of your assembly will do.
What info must I share?
Your *.snk file
Your public key text value
Remember, this is just to verify the identity of your file, not to do some NSA proof securing of some sort. You want to share the information so others can use it in their own projects.
Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here:
Cookie Policy
Recent Comments