Visual studio 2010 Visual Studio项目模板和资源文件
我正在尝试为VisualStudio创建一个自定义项模板,用于创建多个文件。其中两个文件是Visual studio 2010 Visual Studio项目模板和资源文件,visual-studio-2010,visual-studio-templates,Visual Studio 2010,Visual Studio Templates,我正在尝试为VisualStudio创建一个自定义项模板,用于创建多个文件。其中两个文件是Resource.resx文件和相应的“Resource.Designer.cs”文件 我已在.vstemplate文件中使用此声明将它们显示为父子文件: <ProjectItem ItemType="EmbeddedResource" TargetFileName="$fileinputname$Resources.resx" ReplaceParameters="true">Resource
Resource.resx
文件和相应的“Resource.Designer.cs”文件
我已在.vstemplate
文件中使用此声明将它们显示为父子文件:
<ProjectItem ItemType="EmbeddedResource" TargetFileName="$fileinputname$Resources.resx" ReplaceParameters="true">Resources.resx</ProjectItem>
<ProjectItem TargetFileName="$fileinputname$Resources.resx\$fileinputname$Resources.Designer.cs" ReplaceParameters="true">Resources.Designer.cs</ProjectItem>
Resources.resx
Resources.Designer.cs
这也将Resource.resx
声明为嵌入式资源
我现在遇到的问题是,Resource.resx
文件在使用此模板创建项后没有将Resources.Designer.cs
用作代码隐藏文件。只要我在resource.resx
文件中添加一个新的资源字符串,它就会创建一个新的Resources1.Designer.cs
文件,VisualStudio从那时起将其用作代码隐藏
我检查了Visual Studio创建新代码隐藏文件前后在.csproj
文件中所做的更改,发现主要原因是资源.resx
文件中没有
条目
是否有某种方法可以通过
.vstemplate
声明
,或者通过任何其他方法将.resx
文件与其代码隐藏文件连接起来,而无需手动执行?应使用C#项目文件(.csproj)中的标记声明父子关系,如下所示:
<Project ...>
...
<ItemGroup>
...
<EmbeddedResource Include="Resources.resx">
...
</EmbeddedResource>
<Compile Include="Resources.Designer.cs">
<DependentUpon>Resources.resx</DependentUpon>
...
</Compile>
...
</ItemGroup>
</Project>
...
...
...
Resources.resx
...
...
不太清楚为什么需要此模板,因为它已经包含在Visual Studio中。您可以使用Project+添加新项目+常规+资源文件来选择它
如果你想定制它,那么最好的办法就是从现有的开始。导航到C:\Program Files(x86)\Microsoft Visual Studio x.x\Common7\IDE\ItemTemplatesCache\CSharp\General\1033\Resource.zip,其中x.x是VS版本号,如果不使用英文版本的VS,1033可能会有所不同
我将发布您将在那里找到的.vstemplate文件,请确保复制/粘贴该文件以开始自己的工作:
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="2390" />
<Description Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="2391" />
<Icon Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="4565" />
<TemplateID>Microsoft.CSharp.Resource</TemplateID>
<ProjectType>CSharp</ProjectType>
<RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
<NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
<DefaultName>Resource.resx</DefaultName>
</TemplateData>
<TemplateContent>
<ProjectItem>Resource.resx</ProjectItem>
<CustomParameters>
<CustomParameter Name="$itemproperties$" Value="CustomTool" />
<CustomParameter Name="$CustomTool$" Value="ResXFileCodeGenerator" />
</CustomParameters>
</TemplateContent>
<WizardExtension>
<Assembly>Microsoft.VisualStudio.Editors, Version=9.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
<FullClassName>Microsoft.VisualStudio.Editors.ResourceEditor.ResxItemWizard</FullClassName>
</WizardExtension>
</VSTemplate>
Microsoft.CSharp.Resource
CSharp
2
1.
Resource.resx
Resource.resx
Microsoft.VisualStudio.Editor,版本=9.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a
Microsoft.VisualStudio.Editor.ResourceEditor.ResxItemWizard
如果要添加更多文件,请添加更多
元素。我已经管理了有关Visual Studio
层次结构的父子关系。但它不处理类和设计器之间的映射。它必须通过.csproj
文件中的
标记进行处理。而且,虽然我知道.csproj
文件应该是什么样子,但我很难通过visualstudio项目模板
来指定它。这正是我想要的。解决方案的关键部分是侧注上的
和
,您知道如何将生成的.resx
文件公开
,而不是默认设置的内部
?@Hans执行功能请求任务
:)