2010-01-11 49 views
10

我有一個C#類庫,其中包含以文件夾形式組織的多個資源文件。因爲我希望生成的類都在同一個命名空間中,所以我設置了每個資源文件的CustomToolNamespace屬性。Visual Studio資源生成 - 自定義工具命名空間

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

例如,在一個項目中,FolderCustomNamespaceRes.resx放置一個名爲文件夾目錄中。

去除死ImageShack的鏈接

哪裏CustomToolNamespace爲FolderCustomNamespaceRes.resx設置爲PublicResourcesTest,反射器顯示的路徑,嵌入的資源組裝PublicResourcesTest。 文件夾 .FolderCustomNamespaceRes.resources

去除死ImageShack的鏈接

這是bug還是我失去了一些東西?

回答

7

經過一番搜索後,我發現可以通過在.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> 
0

這是由IDE自動完成的,因此它不是一個錯誤,但不幸的是,它可以抑制這種行爲的唯一方法是使用ReSharper,如here所述。

+0

這ReSharper的選項並不適用於在手的情況下。資源生成由Visual Studio提供的自定義工具控制。 – 2010-01-11 18:08:35

相關問題