What you describe vis-a-vie the build process is indeed the difference between a file reference and a project reference. The two nice things about a project reference is that when you build debug you reference the debug version of the other project, but when you build release you reference the release version of the other project. And when you build, you rebuild the other project if needed.
For me, business object / data layer references would probably be project references for my client project, but something like log4net, or a 3rd party control would be file references. I don't really want debug builds of the 3rd party DLLs, and I don't need to step into them in debug mode or have them rebuilt every time. We add a "_Binaries" directory to our projects where we can place 3rd party stuff and reference it from there. That way if it does change the change can be checked into the _Binaries directory and then it will be picked up on the next build. -Walden -- Walden H Leverich III Tech Software (516) 627-3800 x3051 [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> http://www.TechSoftInc.com <http://www.techsoftinc.com/> Quiquid latine dictum sit altum viditur. (Whatever is said in Latin seems profound.) From: hdjim69 [mailto:[EMAIL PROTECTED] Sent: Thursday, October 30, 2008 11:32 AM To: Log4NET User Subject: RE: when to use strong name confusion AND Add Reference confusion Great! Now comes the question, what about project reference vs. file reference? MSDN recommends using project references whenever possible and only use file references when necessary. I haven't been using .Net that long and I'm still a little fuzzy on all the setup choices. We're on VS2005 using Team Suite. The source is on a dev server and we download local copies to develop. When done, we diff, the check into the server. Then Q&A does a build. I'm in charge of requirements gathering and setup for Log4Net. So, I should add a new project to our solution and add the Log4Net code and set a reference to this project from all the other projects in the solution that we need to use Log4net to log. Then do a build, and save my solution and check in the new project. When my co-workers "get latest" it should pull down the new project and all the existing projects should now have a reference to the Log4Net dll that was built. If so, I really don't need the .dll that came with the Log4Net download since I'm going to rebuild it anyway when I add the project and build it. Is this the way to do this? TIA --- On Thu, 10/30/08, Reineri, Jim <[EMAIL PROTECTED]> wrote: From: Reineri, Jim <[EMAIL PROTECTED]> Subject: RE: when to use strong name confusion To: "Log4NET User" <log4net-user@logging.apache.org>, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> Date: Thursday, October 30, 2008, 11:05 AM This is exactly right. The only downside of deploying unsigned log4net with each application is that you would end up with a copy of the dll in each deployed application. At < 300k that is a very small downside in most situations. Jim From: Walden H. Leverich [mailto:[EMAIL PROTECTED] Sent: Thursday, October 30, 2008 10:51 AM To: Log4NET User; [EMAIL PROTECTED] Subject: RE: when to use strong name confusion > just want to be able to go into each project and add a reference to the log4net.dll and that should do it. >No GAC just a reference in each project to the log4net.dll. Correct. _IF_ you used the signed version (or signed a build yourself) you could drop it in the GAC and then you wouldn't need a copy in each deployment directory (you'd still need a reference) but we've found the GAC closer to DLL-hell then not. It's simple enough to drop a copy of log4net.dll in the deployment directory and away you go. Plus, if you were to use a strongly named version then every time you rebuilt it you would have to adjust your references as the full version # is included in the strong name. Not the end of the world for log4net.dll, but there are updates. -Walden -- Walden H Leverich III Tech Software (516) 627-3800 x3051 [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> http://www.TechSoftInc.com <http://www.techsoftinc.com/> Quiquid latine dictum sit altum viditur. (Whatever is said in Latin seems profound.) From: hdjim69 [mailto:[EMAIL PROTECTED] Sent: Thursday, October 30, 2008 10:04 AM To: Log4NET User Subject: RE: when to use strong name confusion Yes, this is for internal use. We are not a vendor. However we have several projects in the solution (VS2005) that need to log (client.exe, client.dll, server.dll, etc.). I just want to be able to go into each project and add a reference to the log4net.dll and that should do it. No GAC just a reference in each project to the log4net.dll. Is this the correct way to set up referencing this .dll? --- On Thu, 10/30/08, Walden H. Leverich <[EMAIL PROTECTED]> wrote: From: Walden H. Leverich <[EMAIL PROTECTED]> Subject: RE: when to use strong name confusion To: "Log4NET User" <log4net-user@logging.apache.org>, [EMAIL PROTECTED] Date: Thursday, October 30, 2008, 9:45 AM Is this for _internal_ use? IOW, you're not a ISV getting ready to distribute software, right? In that case, just ignore strong names completely. Use the DLL as it, and don't worry about sn.exe or signing at all. Except in rare cases (and you'll know when you get there) there is no point in using strongly named assemblies internally. If you're an ISV, then consider it, but then you'll have to understand strong names for your own stuff and the log4net stuff will seem obvious. -Walden -- Walden H Leverich III Tech Software (516) 627-3800 x3051 [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> http://www.TechSoftInc.com <http://www.techsoftinc.com/> Quiquid latine dictum sit altum viditur. (Whatever is said in Latin seems profound.) From: hdjim69 [mailto:[EMAIL PROTECTED] Sent: Thursday, October 30, 2008 8:54 AM To: log4net-user@logging.apache.org Subject: when to use strong name confusion Hello, Not sure I understand the strong name requirements. I'm on .Net 2.0. There is already a .dll in the log4net-1.2.10\bin\net\2.0 dir. Do I need to rebuild this .dll with a strong name key or can I just use this dll as it is ? I know what a strong name is and how to generate a private/public key but still not sure how this relates to when and why I would need to do this with log4net. Any help would be appreciated. TIA J