在assemblyBindig / linkedConfiguration元素中使用相对路径

时间:2015-08-20 20:45:12

标签: .net binding web-config assemblybinding assembly-binding-redirect

我试图将程序集重定向从web.config移动到外部文件中。原因是我希望在一个地方保持绑定重定向,并在调试和生产配置上使用它。

这有点奏效,但我在指定相对路径方面有所作为。

<configuration>
   <!-- this works, but forces me to use the same path on dev and production machines -->
   <linkedConfiguration href="file://c:\data\web.runtime.config"/>

   <!-- none of those works -->
   <linkedConfiguration href="file://web.runtime.config"/>
   <linkedConfiguration href="file://..\web.runtime.config"/>
   <linkedConfiguration href="file://~/web.runtime.config"/>

</configuration>

我希望将web.runtime.config保留在与其他Web应用程序相同的文件夹中。是否可以在linkedConfiguration元素中指定相对路径?

更多信息: 我已经在VS 2015中使用IIS Express和ASP MVC应用程序对其进行了测试。使用SysInternals Process Monitor监视文件访问时,相对路径似乎解析为\\web.runtime.config(无效的网络路径),而在使用绝对路径时没有添加前导\\

2 个答案:

答案 0 :(得分:2)

我找到了一种指定相对路径的方法。

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <linkedConfiguration href="file:./RuntimeConfiguration.xml"/>
</assemblyBinding>

答案 1 :(得分:1)

文件web.runtime.config必须位于bin目录中。

使用href =“ file:web.runtime.config”可以正常工作