[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 329
  • Last Modified:

reference dll locations

I have a project that uses quite a few references to other dlls. Some dll's are 3rd party components, some are from other projects in the solution.

When I deploy this application, I would like to have the .exe in a dir, and all the dll's in a subdir called 'bin'. This works fine for most of my dll's. It seems though, that any dll that comes from a project in the solution has to be in the same directory as the .exe or a subdirectory with the same name as the dll.

For example:
9/9/2004 12:40 PM: System.IO.FileNotFoundException: File or assembly name SqlDbAccess, or one of its dependencies, was not found.
File name: "SqlDbAccess"
  at SAS100.Sas100DBAccess..ctor(String sRole, String sMode)
  at SAS100.SAS100.Main()

=== Pre-bind state information ===
LOG: DisplayName = SqlDbAccess, Version=1.0.1713.11505, Culture=neutral, PublicKeyToken=null
(Fully-specified)
LOG: Appbase = C:\Documents and Settings\me\Desktop\test\
LOG: Initial PrivatePath = NULL
Calling assembly : SAS100a, Version=1.0.1713.11561, Culture=neutral, PublicKeyToken=null.
===

LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: SqlDbAccess, Version=1.0.1713.11505, Culture=neutral, PublicKeyToken=null
LOG: Attempting download of new URL file:///C:/Documents and Settings/me/Desktop/test/SqlDbAccess.DLL.
LOG: Attempting download of new URL file:///C:/Documents and Settings/me/Desktop/test/SqlDbAccess/SqlDbAccess.DLL.
LOG: Attempting download of new URL file:///C:/Documents and Settings/me/Desktop/test/SqlDbAccess.EXE.
LOG: Attempting download of new URL file:///C:/Documents and Settings/me/Desktop/test/SqlDbAccess/SqlDbAccess.EXE.


Does anyone know a way to change the dirs this looks in?

As is, I am forced to either include these dll's in the exe dir, or create 1 subdir for each project-dll.

Thanks,
jason
0
kraquen
Asked:
kraquen
  • 2
1 Solution
 
Justin_WCommented:
Just to get the simplest workaround out of the way:
Would it work to leave the EXE in the BIN folder, and use a BAT file to launch the EXE?
0
 
Justin_WCommented:
Another option is to customize your EXE.CONFIG file using the following:

<configuration>
   <runtime>
      <assemblyBinding>
         <probing>


MSDN docs:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrfProbing.asp
0
 
kraquenAuthor Commented:
i haven't tested it, but that looks like it'll do what I want.. thanks
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now