设置解决方案中其他项目引用的dll类库的位置

时间:2012-01-13 17:46:18

标签: c# .net visual-studio visual-studio-2010 dll

我正在做一个有3个项目(c#)的解决方案。

  1. 主要可执行项目
  2. DLL的
  3. DLL的
  4. 主要项目引用其他人。 我希望在我的主项目中有以下文件结构:

    main.exe 
    Libraries - folder
      + 2.dll
      + 3.dll
    

    但不幸的是VS将这些DLL文件放到了EXE位置。

    有没有简单的解决方案呢?

2 个答案:

答案 0 :(得分:2)

您可以将子DLL上的输出路径更改为指向库。

但是,这不是.Net在运行时针对DLL解析进行探测的标准路径,因此当您尝试部署此问题时,您可能会遇到问题,除非您手动从这些位置加载。

如果您将项目引用标记为Copy Local,那么我不相信您可以通过配置更改Visual Studio将文件复制到的目录。

但是,您可以设置一个构建后的命令,在每次构建后自动将文件移动到所需的子目录中。

<强>更新

我喜欢这个网站,因为它让我每天都能学到新东西。作为一个例子,我刚刚发现了probing element您可以添加到配置文件中,以便为标准探测路径添加其他路径。

此配置元素允许.Net在您的libraries文件夹中搜索要加载的DLL,以便在它们到位后您不必再执行任何其他工作(您仍需要将它们移动到该目录使用postbuild命令)。

以下是支持配置的示例配置条目:

<configuration>
   <runtime>
      <assemblyBinding>
         <probing privatePath="bin\libraries"/>
      </assemblyBinding>
   </runtime>
</configuration>

答案 1 :(得分:1)

我有同样的问题,但之前的例子没有用。只有在我指出计划之后,一切都运转良好:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="Libraries"/>
    </assemblyBinding>
  </runtime>
</configuration>