I'm about to start working as a release manager for the first time. Your video really helps me understand what nuget package is , why we need it and how we use it! Thank you for your selfless sharing!!!
Hello, I had looked for an explanation on this subject and even found several published by people of my nationality, but even though I used the automatic translator on RU-vid to help me with your videos, your teaching is incredible. I'm a big fan of yours, congratulations 👏👏
I share the same surprise, if you want to have a good understanding what you are doing, his tutorials are amazing. I'm in a lot developer groups and I can't tell how many times I said 'check out Tim Corey on RU-vid'.
3 years later it's 500% more subscribers. For special interest, it just takes longer, but videos are viewed over a period of 10 years or so. Not just the 10 days after release.
It's my second time to watch this video and really find it's helpful! It let me understand how it works underneath our big project and how we coordinate each other.
Very awesome. I have already been doing this and its great. I have 8 different libraries that are all part of a large project and with all the CI/CD setup and the Nuget packages setup, it makes life so much easier. I love what MS is doing with Azure Devops and the direction they are taking with the NET stack.
Hi Tim, Thanks for your videos. Quick question, can I include in a project a NuGet from an artifact in a different collection? The NuGet restore only allow me to pick Artifacts/TFS Feed from the same collection.
Hi Tim, great video. Could you please make part 2 of this video and add a debugging part. Like when you link it, if we have errors we need to check for the error, please add that part . 😊 And which all files need to add(like .pdb)
Hey Tim! Thanks again for your videos. As a learner, I find them invaluable! I was wondering if you wouldn't mind explaining simple network connections (between two C# apps), hopefully with the context of a client to server "one-to-many" scenario. The reason I ask is, there are a lot of different ways to do connections (TCP, UDP, NamedPipeServerStreams, etc), and I just can't find a coherent answer as to how to keep multiple connections open, monitor them, and run async processes while connected. That's not so simple of a request, is it? Hmm, well, maybe at least one of those topics in networking then? Best of luck!
I don't have videos on these yet (they are coming) but I would recommend looking into SignalR (for real-time communication) or message queuing like RabbitMQ or MassTransit (for async message handling).
Thanks for your great tutorials. Better than any book you can buy. Would be interested to know how you handle Config Settings especially different Config Settings for Debug, Release,... and how you handle internationalization in WPF Projects especially if you want to switch languages live without restarting the application.
Changing config settings at build can be done with config transforms (either using a tool like Slow Cheetah locally or as part of the build process in something like Azure DevOps). I'm planning on doing a video on internationalization at some point in the semi-near future.
Tim, I'm creating a nuget package for nlog to keep in my private feed. I created custom layout renderer but when I install the created nuget package, the custom renderer are not working. I followed all the things mentioned in nlog documentation. What's the correct way to do it so that when I install nuget package, the custom renderers would work?
Great video Release pipeline can have CI enabled. Csproj pkg version would trigger actual push, rest ignored. Add example where proj relies on 2 external PackageSources.
So many questions I have. Half of my DevOps screens don't look like yours, so I'm struggling to follow your steps. Where is this Build screen that shows the "Artifacts" button at the top that you can use to explore the artifacts (55:30)?? I have been working with DevOps builds for 3 years and have never seen this screen. When I click through a successful build agent job, I only see logs from each step. There are no buttons at the top right (Release, Artifacts dropdown, etc). I would love to see the artifacts that were published after a successful build but have never seen any screen that shows them.
Excellent stuff, as always! One question, though: What if the NuGet package I'm creating uses another NuGet package in its code? When someone installs my package from our NuGet server, will it automatically get the package which my package is using? Or are there other steps necessary?
Hi Tim, Thanks for the video. How can we mark a version as a preview so it can appear on Visual Studio by clicking the checkbox with includes pre-releases or previews?
Hi Tim thanks for informative video session. I have one question I have a .zip file I want to create nuget package for it. how I can do it..? I tried adding this zip into class library and create package but my nupkg file doesn't contain my zip file content. Any suggestion please..?
What do you mean? Typically, you deploy complete applications to Docker, which means they already have their NuGet packages integrated. Is there something different that you are looking for?
Amazing video! Thanks so much. One aspect that I'd like to understand more is the best practice for rapid library/user parallel development. For example, if I use the systems you just proposed and add my library as a nuget dependency in my child project, well now it's a 5 minute or more affair to change some code in the library and push it through Azure to "get it" to my child project. Not to mention I need internet access at the time, etc. It makes working on both a library and its user project in parallel somewhat unfeasible. Is there a way to set up a development tip where making a change on the library project can more quickly propagate to my child project? That way I can quickly flip flop between library and user projects and rapidly develop both, and then push through these more official Azure channels once things "settle in"? Cheers!
There are ways to do this, yes, including doing a local NuGet feed (not online) for dev or even developing the library directly with the project and then separating it out into a NuGet package once it hits maturity. The key is that NuGet packages aren't typically used for just one project. That is too much separation without a benefit. They are useful when multiple projects need the same library. I'll be doing more content on how to create and work with NuGet packages in the future.
thats cool.. i dont understand how i can make in vs 2022 when my project gets builded all dependancies (nuget packages) are in the root folder but i want them in a /lib folder not where the executable is.. what i need to edit/create to get this work
Thank you very much for a great tutorial. One issue not covered in the video that I can't seem to find any information on: when you published using Azure Pipelines, the package name, description and author information changed. I'm having the same problem: the proper information when I publish from the command line, blank information and a different package name when I use Azure Pipelines. Where does one edit the package details when using Azure Pipeline?
I can add more info about this in a follow-up video. I believe in my case, I made a change that changed the name from IAmTimCorey.HelperLibrary to HelperLibrary but the description stayed the same. It should be whatever you specify.
Hi Tim, Very useful video. I was able to follow and create a nuget package, but like the readme.txt file. I have a folder within the project called “configuration” and under it, I have a settings.json file where I store the file paths, db connection etc. and another folder called SQLQueries, under it I have a mysearchsql.txt, pls explain how to package those folders and files as part of the nuget package? I also want the same folder structure myproject/configuration/settings.json and myproject/SQLQueries/mysearchsql.txt to be utilized when I install the package and call the respective methods for db connection as well as method for running the sql query. Please help.
This video helps me to create a nuget package succesfully! Unfortunately I can't figure out how to include the third party packages (e.g. Dapper) correctly.
I managed to find the issue. The Nuget pack task doesn't work for .net core libraries that has references to other packages, for that you need the .Net core pack task.
Hi Tim , Is it possible to create a nuget package with hooks file , interfaces , class files and use it for many projects please ? when i tried to create a pack it didnt create a nuget package in this video 26.01 location ..that step didnt work for me .. could you please help on this ?
thanks for the video.. my question is i have two organisations , i want to push the Nuget packages to the Both organisation. how can i push it. is that possible? if yes then How can i?
Hi Tim, thank you for another great video. I have created a generic class library and uploadet it as a NuGet package to Azure DevOps. When I download and use it in a separate project, it generally works great. However I can't debug into the class library code, as the debugger skips over it.
@@IAmTimCorey If you are talking about source link, it doesn't just work, especially if you are using nuget packages published via local on-premises Azure DevOps pipelines, which I can't tell support symbols servers. The whole situation is a confusing mess.
Hi tim, geat material! but I have got one question. What's the best option to debug my nugetpackage? I mean, I created a nuget, publish nugget, my application A is using that nuget, I added something new to my nuget, published that, updated on Application A, but if i want to test and debug that on Application A, what's the best way? (my nuget package is not testable by self, needs to be tested by application A)
The best option is to debug before it becomes a NuGet package. You can use the PDB file to debug the NuGet package in place, but it is more complicated.
I have one question. Is it possible to have a github action where everytime you commit something, it can publish to nuget. I would be disappointed if the only way a person can do this would be to disclose the key in the actions which means if you have the open source project as public, then they have your keys which is bad. I would love to see a video about a github action so everytime a person commits, github can build and post on nuget.
Quick question and this kind of refers back to the Class Library video. Would there be any advantage to building the dlls projects in the same solution and then creating a dll or nuget solution from the individual projects? This is in contrast to creating a new solution for each project/dll you need?
Hi Tim Great video. Can you please make a video for generic class for httpclient or httpclient factory with CRUD operations that can be used for all api calls
I suggest adding NuGet.exe to where its most convenient to the developer then adding it to the system environment variables so that there is no fuss with paths in scripts or tooling.
Yep. The cloud doesn't mean public. The security level on your private repositories is really impressive. In fact, I recommend small to medium shops host in the cloud rather than maintaining their own servers because they don't have the ability to secure them as well as Microsoft does.
Hi Tim, it is really awesome video. You have explained how to create Nuget packages and use in a project. Do you have any vedio that explains how to build a nuget package with multiple DLLs?. What i mean is that, I have around 20 Dlls (Class libraries) each has its own task. I want to provide it as a single nuget package. Thank you
If anyone else is having problems - I had issues with not being able to do the Nuget push. I had to set the permissions for the feed to "Allow project-scoped builds"
It didn't look like you changed package ID in the properties. Confused about the nuget package name change after automating the process. I guess it is because package names are reserved. The name was already in use so it defaulted to the Project name instead? What if it was two identical project names? Would it then append "1" to your NuGet package name?
Thank you for this guide! I tried building a package of a project that has other NuGet packages as dependencies, but they're neither included on the package nor listed as dependencies in the NuGet Package manager, could you help or point in the right direction? I don't seem to find any indication of this issue online. Thanks
@@IAmTimCorey Yes, unfortunately I'm sure. I opened the package file and they weren't there, furthermore, when I see the log of the NuGet Pack step, there is no mention of dependency inclusion
Thanks Tim . I am using dotnet publish command to build and publish my solution . nuget package from different solution is required to build current solution . What can i do dotnet so that publish command consume the latest nuget package. FYI, I am not using Azure Devops
Hey Tim, I'm finding a dearth of documentation regarding using nuget to distribute js files and libraries in web projects. Especially Asp.Net Core projects. Client side code code just isn't well documented. What I'm trying to accomplish is akin to the way jquery is installed using Nuget. Any resources you can point me to that have clear documentation on this topic?
Typically, we don't use NuGet for client-side JavaScript files (we used to). The problem is having one more place to update when new versions come out. Instead, we use standard tools like npm.
IAmTimCorey yep. Took a lot of reading before I figured that out. How often the simple solutions elude me... I do find having two separate package managers annoying, but I cracked open the NPM documentation on Tuesday. At least npm can also live in my azure DevOps pipeline.
To an extent. Just remember that the version number isn't just an incrementing number. We choose when to update the minor and major version numbers based upon what type of changes have been added, which takes human intervention.
Hi Tim, can you tell me what extra steps (in vs studio2019 and SSMS) i will need to do if i want to implement ms sql server in the C# code for creating a nuget package? It would be rlly awesome if u reply thxs.
It seems to be a bit of a preference thing based upon how you want your symbols to be built and how easy you want it to be to debug. In general, though, when you go to push your production version, default to release build unless you have a really good reason not to.
Hmm, I'm thinking, what can I do with those "versions" where I'm just testing if something works? How can i test my changes without publish a new version to everyone? Thanks a lot for this new perspective, i was thinking in put my release dlls into OneDrive xD.
Create pre-release versions that don't get published to the main feed. You can create an alpha and beta feed (or just one pre-release feed) that early adopters and testers can use.
Hi Tim great tutorial, I succeed to create nuget pkg and done with CI. after uploading 2 versions unable to get access organization setting option. It seem my account became user only.
Hello sir i have created one demo application and trying to access it in our console application then dll is generated but enable to it through Using statement there. could you please help me ?
I'm sorry, I'm not sure what you are asking. However, I also don't have the ability to debug your application (nor the time). Use this as an opportunity to improve your debugging skills. You can do this.
I seem to run into an error getting my release pipeline working. I get an error that "User XXX lacks permission to complete this action." from the agent that is trying to push the artifact to the feed.
It sounds like you need to update your feed's permissions. This might help: stackoverflow.com/questions/58780741/user-lacks-permission-to-complete-this-action-you-need-to-have-addpackage
@@IAmTimCorey Thanks! I was able to get it to work and the issue what that the default feed permissions didn't allow the build agent to push the artifact to it. i.stack.imgur.com/OX9nR.png is the setting I had to change to get it working.
@@IAmTimCorey Well. That didn't worked and I don't know why. I had to add this line in MyProject.csproj inside tag Can you tell me why did that heppened?
@@IAmTimCorey Wow, you are actually answering my question. Thank you. Do you have a video where you show how? I do have the pdb file in my nuget package for both debug and release. However, when I break and tried to use F11, the debugger just step right through and not into the package code.
Have personal NuGet packages? Because sometimes you have company-specific or proprietary code that you use in your projects that you want to share between projects.
I hope Microsoft cuts down these steps so that in a single click with a wizard it's possible to push directly to azure devops as private nuget package.
I explain this at the beginning of my newer videos but I provide real-world context, not just bite-sized tutorials. The former allows you to get the context you need to understand when and how to use something in the real world. The latter gives you a nice demo that rarely works when you try to modify it in any way.
@@IAmTimCorey YT is not a good place to present regular lectures, that can be treated as main source of knowledge. There is no organize such teaching tools. Playlists are too primitive. I am looking for short materials with concrete subjects because I have context in my mind. It is a waste of time such long materials for me.
@@MarekSowikowski who said that YT is not a place for lectures? There is no line in the rules of YT saying that this is not a place for lectures. Many people are enjoying Tim’s content (including me) and you sound like a very arrogant man without any point.