如何更改引用dll复制到的位置?

时间:2010-08-16 22:40:17

标签: c# winforms dll reference

我正在使用一些库,我添加了对该库dll的引用,并将“Copy Local”设置为true。
但我想将dll的位置更改为exe文件夹中的子文件夹,而不是exe 这怎么可能?
感谢

更新:
我使用了以下的构建后事件[作为Jon Skeet推荐]

move /y $(TargetDir)\System.Data.SqlServerCe.dll   $(TargetDir)\Lib\SqlSrvCe\System.Data.SqlServerCe.dll

3 个答案:

答案 0 :(得分:2)

您的.exe文件需要一个.config文件,以便更改探测路径。子目录没问题,只需使用<probing>元素,其privatePath属性是相对文件夹名称。

请注意,您将从IDE中获得一些帮助以将DLL置于该位置。你需要一个post build事件,如果需要的话创建文件夹,xcopy就是那里的DLL。像这样:

if not exist "$(TargetDir)mumble" mkdir "$(TargetDir)mumble"
xcopy /d /y "$(TargetDir)something.dll" "$(TargetDir)mumble"

答案 1 :(得分:1)

我不知道它是否在“普通”构建规则中是可行的,但您可以添加基本上移动文件的构建后步骤。它会很难看,但它应该有用。

答案 2 :(得分:0)

你需要它作为参考吗?或者只是将dll复制到所需位置?

如果您不需要参考,请尝试将其添加到项目中并将其设置为始终复制。

Add the dll to a folder in the project and set to Copy to Output Directory http://web11.twitpic.com/img/146848312-ecfdeadf5b322fe755c7a764d6e6dbf0.4c69c2f0-full.png