我的Visual Studio解决方案有几个后期绑定项目(dll),这些项目在运行时由其他项目加载。加载的DLL取决于某些运行时条件。
要在运行时加载dll,我需要它存在于应用程序bin目录中,并且有几个这样的应用程序。为此,我运行一个后期构建脚本,将后期绑定的dll复制到可能需要它的每个应用程序。我想摆脱脚本,因为它创建了一个非常重要的xcopy后期构建过程。
在这种情况下你用了什么?
我还可以从每个应用程序添加对dll的引用,但是在这种情况下我将创建一个类型引用,而我(或其他开发人员)可能会偶然引用来自后期dll的类型,这可能不会出现在客户端的服务器上
答案 0 :(得分:1)
您不必将其作为参考程序集将其复制到客户端项目中。项目+添加现有项目,选择DLL。将其Build Action设置为“None”,Copy to Output为“Copy if newer”。
答案 1 :(得分:1)
我之前也处理过这个问题,这非常令人沮丧。我现在采用的方法是删除目录依赖项;外化这些后期绑定库的位置(在配置文件中),然后将它们保存在共享位置,您可以将库的构建输出设置为。
在部署时,您可以更改该设置,并使用安装程序打包库。
这在开发/调试多个独立应用程序时特别有用,因为您只需要跟踪库的单个副本。
如果这对你来说不是一个选择 - 也许它很难外化,或者从一个应用程序到另一个应用程序的依赖关系可能存在重大差异 - 那么我会选择nobugz的回答。
答案 2 :(得分:0)
将所有后期绑定项目的构建输出更改为直接在您希望它们后期绑定的项目中构建。因此,不要将它们构建到自己的/ bin / debug /,而是将它们构建为../ MyMainApp / bin / Debug /.