2017-02-14 46 views
0

好吧,我有一个很好的看,发现没有什么有用的这个问题。我有一个在VS(Visual Studio)的解决方案。它有两个项目说ProjectA和ProjectB。处理.dll不在GAC之间移动DEBUG和版本

项目A创建A.dll。 ProjectB创建B.EXE其中引用A.dll

在DEBUG模式下,一切正常,正如您所期望的那样。但是,在发布模式下,文件将被移至安装后的位置。 A.dll将不会安装在GAC中。因为A.dll不是预期与B.EXE相关的位置,所以exes失败。足够合理。

在生成后事件我复制的.EXE文件到c:\los\A.dll被转移到c:\los\libs\

目前,我不得不去参考A.dll,然后再参考,现在它指向它的新位置,重建然后发布版本起作用。真正的解决方案有很多项目和大量的.dll,这意味着我可以轻松(而且确实)忘记定期重新引用新的.dll。

是否有办法来自动执行此过程厌烦?

+1

你为什么不使用GAC –

+0

这是一个要求。 –

+0

是否将生成属性中的配置更改为所有配置帮助? 而不是具有不同的调试和发布配置。 –

回答

1

我相信你正在寻找的.Net的探测功能。下面是参考:https://msdn.microsoft.com/en-us/library/823z9h8w.aspx

实施例:

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

探测已经只有子文件夹可以从执行EXE运行的位置搜索的限制。但是,由于您的EXE位于C:\ Ios中并且该DLL位于子文件夹C:\ Ios \ Libs中。根据文档,您可以指定多个子文件夹。我只是将“Libs”文件夹放入示例中以匹配您的问题。

+0

不知怎的改变参考现在看看。 –

相关问题