资源 (resx) 文件导入
Resource (resx) file import
将资源文件从一个项目导入到另一个项目后出现问题。
我使用 Visual Studio Ultimate 2013、C#、Visual Online。
我的项目中有资源文件。当我创建一个新项目并将文件和这些资源导入新项目时,MY_RESOURCE.Designer.cs 不在它自己的 MY_RESOURCE.resx 部分中 - 它在它旁边。
通常情况下,资源文件的顺序必须是这样的:
但是,在新项目中,导入后是这样的:
此外,在项目文件 (.csproj) 中,我发现这些文件的结构不同。
正常:
<Compile Include="Resources\Main\Main.en-US.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Main.en-US.resx</DependentUpon>
</Compile>
...
<EmbeddedResource Include="Resources\Main\Main.en-US.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>Main.en-US.Designer.cs</LastGenOutput>
</EmbeddedResource>
导入后:
<Compile Include="Resources\Main\Main.en-US.Designer.cs" />
...
<EmbeddedResource Include="Resources\Main\Main.en-US.resx" />
我找到了一些类似这个问题的解决方案,将 Recourse 的 "Access Modifier" 属性(其中)从 "No code generation" 更改为 "Public",但在此之后,resx 文件创建新 child - MY_RESOURCE1.Designer.cs(不是我的 MY_RESOURCE.Designer.cs),所以这不是我的问题的解决方案。
因此,为了不导入它们,我必须创建新的资源文件并将旧项目资源文件中的文字复制并粘贴到新项目资源文件中。
有人可以告诉我如何将 Designer.cs 文件绑定到 copy-paste.. 的 resx 文件吗?
我以前遇到过同样的问题。我终于做了同样的事情,copy-pasting。
但是您是否尝试过更改项目文件。您的新项目应该在设计器文件节点中包含此节点:
<DependentUpon>Main.en-US.resx</DependentUpon>
我会说,首先导入文件,然后编辑您的项目文件并在上面的设计器文件节点中添加此节点,即
<Compile Include="Resources\Main\Main.en-US.Designer.cs">
C# 代码 ("Main.en-US.Designer.cs") 由 VS 自动生成,您必须检查 Visual Studio 是否正确管理了您的 resx 文件。为此,请检查您的 resx 文件的自定义工具 属性:
- Select 你的 resx 文件
- 打开“属性”选项卡
- 检查 "Custom Tool" 属性,确保存在 "ResXFileCodeGenerator" 值。
这应该可以解决您的问题。
将资源文件从一个项目导入到另一个项目后出现问题。
我使用 Visual Studio Ultimate 2013、C#、Visual Online。
我的项目中有资源文件。当我创建一个新项目并将文件和这些资源导入新项目时,MY_RESOURCE.Designer.cs 不在它自己的 MY_RESOURCE.resx 部分中 - 它在它旁边。
通常情况下,资源文件的顺序必须是这样的:
但是,在新项目中,导入后是这样的:
此外,在项目文件 (.csproj) 中,我发现这些文件的结构不同。
正常:
<Compile Include="Resources\Main\Main.en-US.Designer.cs"> <AutoGen>True</AutoGen> <DesignTime>True</DesignTime> <DependentUpon>Main.en-US.resx</DependentUpon> </Compile> ... <EmbeddedResource Include="Resources\Main\Main.en-US.resx"> <Generator>PublicResXFileCodeGenerator</Generator> <LastGenOutput>Main.en-US.Designer.cs</LastGenOutput> </EmbeddedResource>
导入后:
<Compile Include="Resources\Main\Main.en-US.Designer.cs" /> ... <EmbeddedResource Include="Resources\Main\Main.en-US.resx" />
我找到了一些类似这个问题的解决方案,将 Recourse 的 "Access Modifier" 属性(其中)从 "No code generation" 更改为 "Public",但在此之后,resx 文件创建新 child - MY_RESOURCE1.Designer.cs(不是我的 MY_RESOURCE.Designer.cs),所以这不是我的问题的解决方案。
因此,为了不导入它们,我必须创建新的资源文件并将旧项目资源文件中的文字复制并粘贴到新项目资源文件中。
有人可以告诉我如何将 Designer.cs 文件绑定到 copy-paste.. 的 resx 文件吗?
我以前遇到过同样的问题。我终于做了同样的事情,copy-pasting。 但是您是否尝试过更改项目文件。您的新项目应该在设计器文件节点中包含此节点:
<DependentUpon>Main.en-US.resx</DependentUpon>
我会说,首先导入文件,然后编辑您的项目文件并在上面的设计器文件节点中添加此节点,即
<Compile Include="Resources\Main\Main.en-US.Designer.cs">
C# 代码 ("Main.en-US.Designer.cs") 由 VS 自动生成,您必须检查 Visual Studio 是否正确管理了您的 resx 文件。为此,请检查您的 resx 文件的自定义工具 属性:
- Select 你的 resx 文件
- 打开“属性”选项卡
- 检查 "Custom Tool" 属性,确保存在 "ResXFileCodeGenerator" 值。
这应该可以解决您的问题。