我正在创建一些在启动时验证我的网站配置的插件 dll。我想将这些 dll 放在 /bin 文件夹的子目录中。所以我将它添加到我的 web.config 文件中:
<runtime>
<assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin;bin/plugins" />
...
</runtime>
然后我有一个项目,可以构建一些 dll 并将其部署到 /bin/plugins 目录中。
我已经验证了构建步骤是正确的,并创建了子文件夹并将 dll 放在那里。
然后在 application_start 上,我尝试加载程序集。我得到当前正在执行的程序集路径,如下所示:
Dim assembly As Assembly = System.Reflection.Assembly.GetExecutingAssembly()
Dim asmDirectory As String = Path.GetDirectoryName(assembly.Location)
Dim pluginDirectory As String = Path.Combine(asmDirectory, "plugins")
pluginDirectory 通常设置为这样的:
"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\91be3168\7a998462\assembly\dl3\33ada1a0\6561a9fc_a4dacd01"
但是在那个目录中,没有插件目录。
如何让 IIS(在我的情况下为 IIS 6.0)将子文件夹和内容从我的代码目录复制到执行位置?
如果 VB.NET 太难阅读,我很乐意翻译成 C#。