4 Commits

Author SHA1 Message Date
Christian Resma Helle 072e33e997 v1.3 2014-04-24 10:02:54 +02:00
Christian Resma Helle 8002e34eca Tests 2014-04-24 10:02:35 +02:00
Christian Resma Helle d189fb69d6 Add support for detecting the Visual Studio version 2014-04-24 10:02:14 +02:00
Christian Resma Helle ebb510ea2e Added tag v1.2 for changeset 6548c4df20be 2013-10-24 00:08:42 +02:00
7 changed files with 44 additions and 17 deletions
@@ -1,6 +1,9 @@
using System.CodeDom;
using System;
using System.CodeDom.Compiler;
using System.Reflection;
using EnvDTE;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool
{
@@ -8,7 +11,23 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool
{
public ICodeGenerator Create(string className, string defaultNamespace, string inputFileContents, CodeDomProvider codeDomProvider = null, TypeAttributes? classAccessibility = null)
{
return new CodeDomCodeGenerator(new ResourceParser(inputFileContents), className, defaultNamespace, codeDomProvider, classAccessibility);
return new CodeDomCodeGenerator(new ResourceParser(inputFileContents), className, defaultNamespace, codeDomProvider, classAccessibility, VisualStudioHelper.GetVersion());
}
}
public static class VisualStudioHelper
{
public static VisualStudioVersion GetVersion()
{
var dte = Package.GetGlobalService(typeof(SDTE)) as DTE;
var vsVersion = VisualStudioVersion.VS2012;
if (dte != null)
{
Version dteVersion;
if (Version.TryParse(dte.Version, out dteVersion) && dteVersion >= new Version(12, 0))
vsVersion = VisualStudioVersion.VS2013;
}
return vsVersion;
}
}
}
@@ -3,6 +3,7 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool
public enum VisualStudioVersion
{
VS2012,
VS2013
VS2013,
Unknown
}
}
@@ -29,7 +29,7 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.2.0.*")]
[assembly: AssemblyVersion("1.3.0.*")]
[assembly: InternalsVisibleTo("VSPackage_IntegrationTests, PublicKey=002400000480000094000000060200000024000052534131000400000100010045bd05a5b24c74b83f069df52e138682c2fb8b1ee65cb9d351fd7e8d622308aeb588b2a2975d75da4fe8a392510528baa26a3317809ec064d3cc852f0df94752ad2228d9f2a048ee2858c1e9d505b05f7fb4ede02f34154f75ea50445741c84f5ab1c814358f5fd6a6f08bb3d94284cff0524d5ca9d888c8648bcbc7a1e0a3c8")]
[assembly: InternalsVisibleTo("VSPackage_UnitTests, PublicKey=002400000480000094000000060200000024000052534131000400000100010045bd05a5b24c74b83f069df52e138682c2fb8b1ee65cb9d351fd7e8d622308aeb588b2a2975d75da4fe8a392510528baa26a3317809ec064d3cc852f0df94752ad2228d9f2a048ee2858c1e9d505b05f7fb4ede02f34154f75ea50445741c84f5ab1c814358f5fd6a6f08bb3d94284cff0524d5ca9d888c8648bcbc7a1e0a3c8")]
@@ -1,14 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
VS SDK Notes: This resx file contains the resources that will be consumed from your package by Visual Studio.
For example, Visual Studio will attempt to load resource '400' from this resource stream when it needs to
load your package's icon. Because Visual Studio will always look in the VSPackage.resources stream first for
resources it needs, you should put additional resources that Visual Studio will load directly into this resx
file.
Resources that you would like to access directly from your package in a strong-typed fashion should be stored
in Resources.resx or another resx file.
-->
<root>
<!--
Microsoft ResX Schema
@@ -127,13 +117,13 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="110" xml:space="preserve">
<value>ResW File Code Generator</value>
</data>
<data name="112" xml:space="preserve">
<value>Information about my packageA Visual Studio 2012 Custom Tool for generating a strongly typed helper class for accessing localized resources from a .ResW file.</value>
<value>A Visual Studio 2012 and 2013 Custom Tool for generating a strongly typed helper class for accessing localized resources from a .ResW file.</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="400" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\Package.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -66,6 +66,7 @@
<Compile Include="SignOff-Tests\CSharpProjectTests.cs" />
<Compile Include="SignOff-Tests\SolutionTests.cs" />
<Compile Include="SignOff-Tests\VBProjectTests.cs" />
<Compile Include="VisualStudioVersionHelperTests.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Key.snk" />
@@ -0,0 +1,16 @@
using ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace VSPackage_IntegrationTests
{
[TestClass]
public class VisualStudioHelperTests
{
[TestMethod]
public void GetVersionTests()
{
var actual = VisualStudioHelper.GetVersion();
Assert.AreNotEqual(VisualStudioVersion.Unknown, actual);
}
}
}
@@ -4,7 +4,7 @@
xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
<Metadata>
<Identity Id="6a4c1726-440f-4b2d-a2e5-711277da6099"
Version="1.1"
Version="1.3"
Language="en-US"
Publisher="Christian Resma Helle" />
<DisplayName>ResW File Code Generator</DisplayName>