构建应用程序后,我想将所有.dlls移动到“ lib”文件夹。默认程序在目录中创建它们:
bin \ Debug \ netcoreapp2.2
这是我要放置.dll的目录:
bin \ Debug \ netcoreapp2.2 \ lib
我创建了一个脚本,该脚本将我的.dll移动到该文件夹中并将其置于后构建事件中。它可以正常工作。
接下来,我将运行时添加到我的app.config文件中,就像在许多关于stackoverflow的教程和文章中看到的那样。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib"/>
</assemblyBinding>
</runtime>
但是,在构建并启动程序之后,控制台会显示:
要执行的应用程序不存在: app \ bin \ Debug \ netcoreapp2.2 \ myDLL.dll
我想知道我的应用程序出了什么问题?如何更改程序在其中寻找.dll的目录?
答案 0 :(得分:0)
我猜您需要的是配置中的codebase元素。
在documentation中,如果程序集具有强名称,则代码库设置可以位于本地Intranet或Internet上的任何位置。如果程序集是私有程序集,则代码库设置必须是相对于应用程序目录的路径。
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="myAssembly"
publicKeyToken="32ab4ba45e0a69a1"
culture="neutral" />
<codeBase version="2.0.0.0"
href="http://www.litwareinc.com/myAssembly.dll"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
希望这会有所帮助。