C# 如何更改引用DLL复制到的位置?

C# 如何更改引用DLL复制到的位置?,c#,winforms,dll,reference,C#,Winforms,Dll,Reference,我正在使用一些库,我添加了对该库dll的引用,并将“复制本地”设置为true。 但是我想将dll的位置更改为exe文件夹中的子文件夹,而不是exe文件夹中的子文件夹。 这怎么可能呢? 谢谢 更新: 我使用了以下构建后事件[正如Jon Skeet推荐的那样] move /y $(TargetDir)\System.Data.SqlServerCe.dll $(TargetDir)\Lib\SqlSrvCe\System.Data.SqlServerCe.dll 我不知道在“正常”构建规则中是

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

更新:
我使用了以下构建后事件[正如Jon Skeet推荐的那样]

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

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

你需要它作为参考吗?或者引用仅用于将dll复制到所需位置

如果不需要引用,请尝试将其添加到项目中,并将其设置为“始终复制”


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

但是,请注意,IDE几乎不会帮助您将DLL放在该位置。如果需要,您需要一个生成后事件来创建文件夹,并且xcopy将在那里创建DLL。大概是这样的:

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

此链接包含用于探测路径的app.config中的xml。如果有人对此有问题,可能是因为路径中有空格。所以用引号括起来:“$(TargetDir)mumble”