Visual studio 如何使用visual studio将程序集编译并部署到自定义路径中?

Visual studio 如何使用visual studio将程序集编译并部署到自定义路径中?,visual-studio,assemblies,Visual Studio,Assemblies,我已经搜索了很长一段时间,我能找到任何东西。我有两个项目。一个叫ConsoleApp,另一个叫ConsoleLib。ConsoleApp引用了ConsoleLib。 如何告诉visual studio将程序集复制到自定义路径而不是应用程序路径? 我想说的是,当我构建解决方案时,我希望得到这个文件夹结构 AppPath\ConsoleApp.exe AppPath\Lib\ AppPath\Lib\ConsoleLib.dll 在您的ConsoleApp项目中,请参考将在ConsoleApp\Bi

我已经搜索了很长一段时间,我能找到任何东西。我有两个项目。一个叫ConsoleApp,另一个叫ConsoleLib。ConsoleApp引用了ConsoleLib。 如何告诉visual studio将程序集复制到自定义路径而不是应用程序路径? 我想说的是,当我构建解决方案时,我希望得到这个文件夹结构

AppPath\ConsoleApp.exe
AppPath\Lib\
AppPath\Lib\ConsoleLib.dll

  • 在您的ConsoleApp项目中,请参考将在ConsoleApp\Bin中接收ConsoleLib.dll的ConsoleLib项目

  • 现在,在ConsoleApp项目中转到后期生成命令中,您可以指定生成后要执行的操作,并将其复制到ConsoleApp\Lib中


您需要在应用程序项目中使用postbuild命令来创建lib目录并将库文件复制到其中

如果你决定这样做(除非你有很多DLL,并且有强烈的愿望组织它们,否则我不建议这样做),你还需要在app.config文件中添加一个探测路径元素,告诉它在哪里可以找到库

使用后期生成命令(我在输出中使用subdir“release”)

在app.config中,然后:

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


希望这有帮助

首先,感谢您的回答。第二个问题,我已经找到了可能性。我在有效的C#(Bill Wagner书)中读到过,可以为程序集设置私有bin路径。以便加载程序也搜索该路径。想要将lib程序集移动到另一个目录中的原因是为了使二进制文件具有更好的结构。Mi的问题是如何设置程序集的私有bin路径,或者我是否误解了这个概念?感谢您再次回答。您正在寻找的私人垃圾箱路径是我在回答中链接到的探测元素
<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="bin"/>
    </assemblyBinding>
</runtime>