Dot-Net

在特定文件夾中部署 .NET 附屬程序集

  • January 11, 2022

我正在開發一個 C# .NET 應用程序,並且正在使用資源文件執行本地化。我有特定於文化的資源文件,例如:

  • 我的資源.resx;
  • MyResource.fr-FR.resx;
  • MyResource.ja-JP.resx;

建構後,在應用程序根文件夾中,有 , 之類的文件fr-FRja-JP

例如,是否可以將所有本地化資源文件和文件夾移動到同一個文件夾中Languages

更新1:

我用下面的程式碼解決了這個問題。似乎當我將應用程序複製到另一個地方時,它無法載入資源。正如我所看到的,application.config 文件也需要在那裡。如果我將 app.config 作為嵌入資源,它就不起作用。

有沒有辦法,如何在沒有同一目錄中需要的 .config 文件的情況下做到這一點?

謝謝

預設情況下,附屬程序集位於執行檔正下方的子目錄中。如果要將其他文化的所有fr-FRja-JP剩余文件夾移動到同一文件夾Languages中,可以通過將以下條目添加到應用程序配置文件中來實現:

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

這將表明,在搜尋程序集時,CLR 應在預設位置以及由元素privatePath屬性指定的目錄中進行搜尋。probing您可以指定應用程序執行檔下存在的任何目錄。當指定多個子目錄時,您需要用分號分隔每個子目錄。

引用自:https://stackoverflow.com/questions/8527306