Dot-Net

Visual Studio 資源生成 - 自定義工具命名空間

  • August 27, 2015

我有一個 C# 類庫,其中包含在文件夾中組織的多個資源文件。因為我希望生成的類都在同一個命名空間中,所以我設置了每個資源文件的 CustomToolNamespace 屬性。

然而,我通過 Reflector 發現,雖然這些類都是在同一個命名空間中生成的,但嵌入資源的路徑包含放置資源文件的目錄名稱。

例如,在將FolderCustomNamespaceRes.resx放置在名為Folder的目錄中的項目中。

刪除了無效的 ImageShack 連結

而在FolderCustomNamespaceRes.resx的 CustomToolNamespace 設置為 PublicResourcesTest 的情況下,Reflector 顯示嵌入資源程序集的路徑是 PublicResourcesTest。文件夾.FolderCustomNamespaceRes.resources

刪除了無效的 ImageShack 連結

這是一個錯誤還是我錯過了什麼?

經過一番搜尋,我發現嵌入資源的清單名稱可以通過在.cspproj文件中添加元數據來控制。

在你有類似的東西之前:

<EmbeddedResource Include="Folder\FolderCustomNamespaceRes.resx">
  <Generator>PublicResXFileCodeGenerator</Generator>
  <LastGenOutput>FolderCustomNamespaceRes.Designer.cs</LastGenOutput>
  <CustomToolNamespace>PublicResourcesTest</CustomToolNamespace>
</EmbeddedResource>

要控制清單名稱,您必須添加:

<EmbeddedResource Include="Folder\FolderCustomNamespaceRes.resx">
  ....
  <LogicalName>$(RootNamespace).FolderCustomNamespaceRes.resources</LogicalName>
</EmbeddedResource>

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