.net - 将.NET程序集移离应用程序基本目录?

我有一个WinForms应用程序,其中包含大量第三方引用。这使输出文件夹非常混乱。我想将编译/引用的dll放入输出文件夹中的 public 子目录bin / lib-随便什么-只是可执行文件(+所需的配置等)位于输出文件夹中。

经过一些搜索之后,我遇到了程序集探测(http://msdn.microsoft.com/en-us/library/4191fzwb.aspx)-并验证了如果我进行了设置并手动移动程序集,则将其存储在指定的子目录中的情况下,我的应用程序仍然可以正常工作:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="bin" />
    </assemblyBinding>
  </runtime>
</configuration>

但是,这不能解决构建部分-是否有任何方法可以指定引用的程序集和已编译的库程序集的去向?

我能想到的唯一解决方案是构建后操作或放弃想法并使用ILMerge或其他方法。

必须有一种更好的方法来定义结构:-)

最佳答案

如果要在Visual Studio中进行构建,则可以肯定地设置构建后操作-它们可以很好地工作。我真的不认为有任何其他好的记录方法可以做到这一点。不幸的是,我相信,当您引用另一个程序集时,没有选择来定义在构建过程中将引用的DLL复制到何处。

当然,如果要从源代码构建这些程序集,则可以从一开始就将它们的输出目录设置为(app)\bin(app)\lib,并且构建过程会将它们从一开始就插入正确的目录中。

如果您使用的是更复杂的构建服务器,则可能也可以将少数DLL文件移动到该工具中的单独目录中。

https://stackoverflow.com/questions/2486874/

相关文章:

rest - 在RESTful架构中实现类似批处理操作的最佳方法?

spring - 如何在库的上下文中实例化 Spring?

asp.net - 跨子域的ASP.NET MVC session

ruby-on-rails - Rails 3发布后对Rails 2的支持

wpf - WPF ControlTrigger IsMouseOver

django - 在templatetags之间传递上下文,Django

magento - 通过一个简单的单一产品站点使用Magento

web-scraping - 刮谷歌代码搜索

svg - 扩展Zedgraph以生产SVG

python-3.x - 从字符串生成用于加密的整数,反之亦然