aboutsummaryrefslogtreecommitdiff
path: root/csharp
diff options
context:
space:
mode:
authorJon Skeet <skeet@pobox.com>2008-09-04 15:13:21 +0100
committerJon Skeet <skeet@pobox.com>2008-09-04 15:13:21 +0100
commit7fd62ffd77ccedfc6dbe2384901b375859b726b6 (patch)
tree84408cbb58b8256b04fd955abdbcbdf6e9eb8440 /csharp
parent4658a3dd7ebca6de6271071f13bf4f919cc1169b (diff)
downloadprotobuf-7fd62ffd77ccedfc6dbe2384901b375859b726b6.tar.gz
protobuf-7fd62ffd77ccedfc6dbe2384901b375859b726b6.tar.bz2
protobuf-7fd62ffd77ccedfc6dbe2384901b375859b726b6.zip
Initial setup of generator code. Little real functionality so far.
Diffstat (limited to 'csharp')
-rw-r--r--csharp/ProtoGen.Test/DependencyResolutionTest.cs17
-rw-r--r--csharp/ProtoGen.Test/GeneratorTest.cs7
-rw-r--r--csharp/ProtoGen.Test/Properties/AssemblyInfo.cs36
-rw-r--r--csharp/ProtoGen.Test/Properties/Google.ProtocolBuffers.ProtoGen.Test.snkbin0 -> 596 bytes
-rw-r--r--csharp/ProtoGen.Test/ProtoGen.Test.csproj72
-rw-r--r--csharp/ProtoGen/DependencyResolutionException.cs17
-rw-r--r--csharp/ProtoGen/Generator.cs47
-rw-r--r--csharp/ProtoGen/GeneratorOptions.cs69
-rw-r--r--csharp/ProtoGen/InvalidOptionsException.cs36
-rw-r--r--csharp/ProtoGen/Program.cs41
-rw-r--r--csharp/ProtoGen/Properties/AssemblyInfo.cs42
-rw-r--r--csharp/ProtoGen/Properties/Google.ProtocolBuffers.ProtoGen.snkbin0 -> 596 bytes
-rw-r--r--csharp/ProtoGen/ProtoGen.csproj66
-rw-r--r--csharp/ProtoGen/app.config3
-rw-r--r--csharp/ProtocolBuffers.Test/Properties/Google.ProtocolBuffers.Test.snk (renamed from csharp/ProtocolBuffers.Test/Properties/ProtocolBuffers.Test.snk)bin596 -> 596 bytes
-rw-r--r--csharp/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj8
-rw-r--r--csharp/lib/Rhino.Mocks.dll (renamed from csharp/ProtocolBuffers.Test/lib/Rhino.Mocks.dll)bin287744 -> 287744 bytes
-rw-r--r--csharp/lib/Rhino.Mocks.xml (renamed from csharp/ProtocolBuffers.Test/lib/Rhino.Mocks.xml)0
-rw-r--r--csharp/lib/nunit-license.txt (renamed from csharp/ProtocolBuffers.Test/lib/nunit-license.txt)0
-rw-r--r--csharp/lib/nunit.framework.dll (renamed from csharp/ProtocolBuffers.Test/lib/nunit.framework.dll)bin45056 -> 45056 bytes
-rw-r--r--csharp/lib/rhino-license.txt (renamed from csharp/ProtocolBuffers.Test/lib/rhino-license.txt)0
21 files changed, 457 insertions, 4 deletions
diff --git a/csharp/ProtoGen.Test/DependencyResolutionTest.cs b/csharp/ProtoGen.Test/DependencyResolutionTest.cs
new file mode 100644
index 00000000..1906c44d
--- /dev/null
+++ b/csharp/ProtoGen.Test/DependencyResolutionTest.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using NUnit.Framework;
+
+namespace ProtoGen {
+ /// <summary>
+ /// Tests for the dependency resolution in Generator.
+ /// </summary>
+ [TestFixture]
+ public class DependencyResolutionTest {
+
+ [Test]
+ public void TwoDistinctFiles() {
+ }
+ }
+}
diff --git a/csharp/ProtoGen.Test/GeneratorTest.cs b/csharp/ProtoGen.Test/GeneratorTest.cs
new file mode 100644
index 00000000..137d9348
--- /dev/null
+++ b/csharp/ProtoGen.Test/GeneratorTest.cs
@@ -0,0 +1,7 @@
+using NUnit.Framework;
+
+namespace ProtoGen {
+ [TestFixture]
+ public class GeneratorTest {
+ }
+}
diff --git a/csharp/ProtoGen.Test/Properties/AssemblyInfo.cs b/csharp/ProtoGen.Test/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..98a0a384
--- /dev/null
+++ b/csharp/ProtoGen.Test/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ProtoGen.Test")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ProtoGen.Test")]
+[assembly: AssemblyCopyright("Copyright © 2008")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("40720ee3-2d15-4271-8c42-8f9cfd01b52f")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/csharp/ProtoGen.Test/Properties/Google.ProtocolBuffers.ProtoGen.Test.snk b/csharp/ProtoGen.Test/Properties/Google.ProtocolBuffers.ProtoGen.Test.snk
new file mode 100644
index 00000000..3f53cbd4
--- /dev/null
+++ b/csharp/ProtoGen.Test/Properties/Google.ProtocolBuffers.ProtoGen.Test.snk
Binary files differ
diff --git a/csharp/ProtoGen.Test/ProtoGen.Test.csproj b/csharp/ProtoGen.Test/ProtoGen.Test.csproj
new file mode 100644
index 00000000..c1c05243
--- /dev/null
+++ b/csharp/ProtoGen.Test/ProtoGen.Test.csproj
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{C268DA4C-4004-47DA-AF23-44C983281A68}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>ProtoGen</RootNamespace>
+ <AssemblyName>Google.ProtocolBuffers.ProtoGen.Test</AssemblyName>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <SignAssembly>true</SignAssembly>
+ <AssemblyOriginatorKeyFile>Properties\Google.ProtocolBuffers.ProtoGen.Test.snk</AssemblyOriginatorKeyFile>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="nunit.framework, Version=2.2.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\lib\nunit.framework.dll</HintPath>
+ </Reference>
+ <Reference Include="Rhino.Mocks, Version=3.5.0.2, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\lib\Rhino.Mocks.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="DependencyResolutionTest.cs" />
+ <Compile Include="GeneratorTest.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\ProtocolBuffers\ProtocolBuffers.csproj">
+ <Project>{6908BDCE-D925-43F3-94AC-A531E6DF2591}</Project>
+ <Name>ProtocolBuffers</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\ProtoGen\ProtoGen.csproj">
+ <Project>{250ADE34-82FD-4BAE-86D5-985FBE589C4A}</Project>
+ <Name>ProtoGen</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="Properties\Google.ProtocolBuffers.ProtoGen.Test.snk" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/csharp/ProtoGen/DependencyResolutionException.cs b/csharp/ProtoGen/DependencyResolutionException.cs
new file mode 100644
index 00000000..4e483fc1
--- /dev/null
+++ b/csharp/ProtoGen/DependencyResolutionException.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Google.ProtocolBuffers.ProtoGen {
+ /// <summary>
+ /// Exception thrown when dependencies within a descriptor set can't be resolved.
+ /// </summary>
+ public sealed class DependencyResolutionException : Exception {
+ public DependencyResolutionException(string message) : base(message) {
+ }
+
+ public DependencyResolutionException(string format, params object[] args)
+ : base(string.Format(format, args)) {
+ }
+ }
+}
diff --git a/csharp/ProtoGen/Generator.cs b/csharp/ProtoGen/Generator.cs
new file mode 100644
index 00000000..d1ff76b2
--- /dev/null
+++ b/csharp/ProtoGen/Generator.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.DescriptorProtos;
+using System.IO;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers.ProtoGen {
+ /// <summary>
+ /// Code generator for protocol buffers. Only C# is supported at the moment.
+ /// </summary>
+ public sealed class Generator {
+
+ readonly GeneratorOptions options;
+
+ private Generator(GeneratorOptions options) {
+ options.Validate();
+ this.options = options;
+ }
+
+ /// <summary>
+ /// Returns a generator configured with the specified options.
+ /// </summary>
+ public static Generator CreateGenerator(GeneratorOptions options) {
+ return new Generator(options);
+ }
+
+ public void Generate() {
+ foreach (string inputFile in options.InputFiles) {
+ FileDescriptorSet descriptorProtos;
+ using (Stream inputStream = File.OpenRead(inputFile)) {
+ descriptorProtos = FileDescriptorSet.ParseFrom(inputStream);
+ }
+ List<FileDescriptor> descriptors = ConvertDescriptors(descriptorProtos);
+ }
+ }
+
+ /// <summary>
+ /// Resolves any dependencies and converts FileDescriptorProtos into FileDescriptors.
+ /// The list returned is in the same order as the protos are listed in the descriptor set.
+ /// Note: this method is internal rather than private to allow testing.
+ /// </summary>
+ /// <exception cref="DependencyResolutionException">Not all dependencies could be resolved.</exception>
+ internal static List<FileDescriptor> ConvertDescriptors(FileDescriptorSet descriptorProtos) {
+ return null;
+ }
+ }
+}
diff --git a/csharp/ProtoGen/GeneratorOptions.cs b/csharp/ProtoGen/GeneratorOptions.cs
new file mode 100644
index 00000000..c37352ed
--- /dev/null
+++ b/csharp/ProtoGen/GeneratorOptions.cs
@@ -0,0 +1,69 @@
+using System.Collections.Generic;
+using System.IO;
+
+namespace Google.ProtocolBuffers.ProtoGen {
+
+ /// <summary>
+ /// All the configuration required for the generator - where to generate
+ /// output files, the location of input files etc. While this isn't immutable
+ /// in practice, the contents shouldn't be changed after being passed to
+ /// the generator.
+ /// </summary>
+ public sealed class GeneratorOptions {
+
+ public string OutputDirectory { get; set; }
+ public IList<string> InputFiles { get; set; }
+
+ /// <summary>
+ /// Attempts to validate the options, but doesn't throw an exception if they're invalid.
+ /// Instead, when this method returns false, the output variable will contain a collection
+ /// of reasons for the validation failure.
+ /// </summary>
+ /// <param name="reasons">Variable to receive a list of reasons in case of validation failure.</param>
+ /// <returns>true if the options are valid; false otherwise</returns>
+ public bool TryValidate(out IList<string> reasons) {
+ List<string> tmpReasons = new List<string>();
+
+ // Output directory validation
+ if (string.IsNullOrEmpty(OutputDirectory)) {
+ tmpReasons.Add("No output directory specified");
+ } else {
+ if (!Directory.Exists(OutputDirectory)) {
+ tmpReasons.Add("Specified output directory (" + OutputDirectory + " doesn't exist.");
+ }
+ }
+
+ // Input file validation (just in terms of presence)
+ if (InputFiles == null || InputFiles.Count == 0) {
+ tmpReasons.Add("No input files specified");
+ } else {
+ foreach (string input in InputFiles) {
+ FileInfo fi = new FileInfo(input);
+ if (!fi.Exists) {
+ tmpReasons.Add("Input file " + input + " doesn't exist.");
+ }
+ }
+ }
+
+ if (tmpReasons.Count != 0) {
+ reasons = tmpReasons;
+ return false;
+ }
+
+ reasons = null;
+ return true;
+ }
+
+ /// <summary>
+ /// Validates that all the options have been set and are valid,
+ /// throwing an exception if they haven't.
+ /// </summary>
+ /// <exception cref="InvalidOptionsException">The options are invalid.</exception>
+ public void Validate() {
+ IList<string> reasons;
+ if (!TryValidate(out reasons)) {
+ throw new InvalidOptionsException(reasons);
+ }
+ }
+ }
+}
diff --git a/csharp/ProtoGen/InvalidOptionsException.cs b/csharp/ProtoGen/InvalidOptionsException.cs
new file mode 100644
index 00000000..aee03228
--- /dev/null
+++ b/csharp/ProtoGen/InvalidOptionsException.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Google.ProtocolBuffers.Collections;
+
+namespace Google.ProtocolBuffers.ProtoGen {
+ /// <summary>
+ /// Exception thrown to indicate that the options passed were invalid.
+ /// </summary>
+ public sealed class InvalidOptionsException : Exception {
+
+ private readonly IList<string> reasons;
+
+ /// <summary>
+ /// An immutable list of reasons why the options were invalid.
+ /// </summary>
+ public IList<string> Reasons {
+ get { return reasons; }
+ }
+
+ public InvalidOptionsException(IList<string> reasons)
+ : base(BuildMessage(reasons)) {
+ this.reasons = Lists.AsReadOnly(reasons);
+ }
+
+ private static string BuildMessage(IEnumerable<string> reasons) {
+ StringBuilder builder = new StringBuilder("Invalid options:");
+ builder.AppendLine();
+ foreach (string reason in reasons) {
+ builder.Append(" ");
+ builder.AppendLine(reason);
+ }
+ return builder.ToString();
+ }
+ }
+}
diff --git a/csharp/ProtoGen/Program.cs b/csharp/ProtoGen/Program.cs
new file mode 100644
index 00000000..22245ab8
--- /dev/null
+++ b/csharp/ProtoGen/Program.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+
+namespace Google.ProtocolBuffers.ProtoGen {
+ /// <summary>
+ /// Entry point for the Protocol Buffers generator.
+ /// </summary>
+ class Program {
+ static int Main(string[] args) {
+ try {
+
+ GeneratorOptions options = ParseCommandLineArguments(args);
+
+ IList<string> validationFailures;
+ if (!options.TryValidate(out validationFailures)) {
+ // We've already got the message-building logic in the exception...
+ InvalidOptionsException exception = new InvalidOptionsException(validationFailures);
+ Console.WriteLine(exception.Message);
+ return 1;
+ }
+
+ Generator generator = Generator.CreateGenerator(options);
+ generator.Generate();
+
+
+ return 0;
+ } catch (Exception e) {
+ Console.Error.WriteLine("Caught unhandled exception: {0}", e);
+ return 1;
+ }
+ }
+
+ private static GeneratorOptions ParseCommandLineArguments(string[] args) {
+ GeneratorOptions options = new GeneratorOptions();
+ string baseDir = "c:\\Users\\Jon\\Documents\\Visual Studio 2008\\Projects\\ProtocolBuffers";
+ options.OutputDirectory = baseDir + "\\tmp";
+ options.InputFiles = new[] { baseDir + "\\protos\\nwind.protobin" };
+ return options;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/ProtoGen/Properties/AssemblyInfo.cs b/csharp/ProtoGen/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..24f5d781
--- /dev/null
+++ b/csharp/ProtoGen/Properties/AssemblyInfo.cs
@@ -0,0 +1,42 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ProtoGen")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ProtoGen")]
+[assembly: AssemblyCopyright("Copyright © 2008")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("7101763b-7a38-41be-87f5-7ede4c554509")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: InternalsVisibleTo("Google.ProtocolBuffers.ProtoGen.Test,PublicKey=" +
+"0024000004800000940000000602000000240000525341310004000001000100cf43741ffc3e65" +
+"c85707245e144e90f1bb82f20d1b1555846008d4d5d5c9270a980350dcb1ddd40fcdde13c2780c" +
+"75c9057123daa5613cb6551e2b8bd2254e8f84b3893369869e5119b752442aef7156c4defc489b" +
+"96c44ff801fe8d94199e048f8ff414813c9c811a029bcd697040700dc66982539e9b368cb5e725" +
+"feed60f2")]
diff --git a/csharp/ProtoGen/Properties/Google.ProtocolBuffers.ProtoGen.snk b/csharp/ProtoGen/Properties/Google.ProtocolBuffers.ProtoGen.snk
new file mode 100644
index 00000000..8e4d98a5
--- /dev/null
+++ b/csharp/ProtoGen/Properties/Google.ProtocolBuffers.ProtoGen.snk
Binary files differ
diff --git a/csharp/ProtoGen/ProtoGen.csproj b/csharp/ProtoGen/ProtoGen.csproj
new file mode 100644
index 00000000..b4d06c50
--- /dev/null
+++ b/csharp/ProtoGen/ProtoGen.csproj
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{250ADE34-82FD-4BAE-86D5-985FBE589C4A}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers.ProtoGen</RootNamespace>
+ <AssemblyName>ProtoGen</AssemblyName>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <TargetFrameworkSubset>
+ </TargetFrameworkSubset>
+ <SignAssembly>true</SignAssembly>
+ <AssemblyOriginatorKeyFile>Properties\Google.ProtocolBuffers.ProtoGen.snk</AssemblyOriginatorKeyFile>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="DependencyResolutionException.cs" />
+ <Compile Include="Generator.cs" />
+ <Compile Include="GeneratorOptions.cs" />
+ <Compile Include="InvalidOptionsException.cs" />
+ <Compile Include="Program.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="app.config" />
+ <None Include="Properties\Google.ProtocolBuffers.ProtoGen.snk" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\ProtocolBuffers\ProtocolBuffers.csproj">
+ <Project>{6908BDCE-D925-43F3-94AC-A531E6DF2591}</Project>
+ <Name>ProtocolBuffers</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/csharp/ProtoGen/app.config b/csharp/ProtoGen/app.config
new file mode 100644
index 00000000..df20690a
--- /dev/null
+++ b/csharp/ProtoGen/app.config
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<configuration>
+<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
diff --git a/csharp/ProtocolBuffers.Test/Properties/ProtocolBuffers.Test.snk b/csharp/ProtocolBuffers.Test/Properties/Google.ProtocolBuffers.Test.snk
index 20046fb2..20046fb2 100644
--- a/csharp/ProtocolBuffers.Test/Properties/ProtocolBuffers.Test.snk
+++ b/csharp/ProtocolBuffers.Test/Properties/Google.ProtocolBuffers.Test.snk
Binary files differ
diff --git a/csharp/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj b/csharp/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
index 19cacd01..6335c614 100644
--- a/csharp/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
+++ b/csharp/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
@@ -13,7 +13,7 @@
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SignAssembly>true</SignAssembly>
- <AssemblyOriginatorKeyFile>Properties\ProtocolBuffers.Test.snk</AssemblyOriginatorKeyFile>
+ <AssemblyOriginatorKeyFile>Properties\Google.ProtocolBuffers.Test.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -35,11 +35,11 @@
<ItemGroup>
<Reference Include="nunit.framework, Version=2.2.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
<SpecificVersion>False</SpecificVersion>
- <HintPath>lib\nunit.framework.dll</HintPath>
+ <HintPath>..\lib\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="Rhino.Mocks, Version=3.5.0.2, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>lib\Rhino.Mocks.dll</HintPath>
+ <HintPath>..\lib\Rhino.Mocks.dll</HintPath>
</Reference>
<Reference Include="System" />
</ItemGroup>
@@ -79,7 +79,7 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
- <None Include="Properties\ProtocolBuffers.Test.snk" />
+ <None Include="Properties\Google.ProtocolBuffers.Test.snk" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
diff --git a/csharp/ProtocolBuffers.Test/lib/Rhino.Mocks.dll b/csharp/lib/Rhino.Mocks.dll
index 5ebbe568..5ebbe568 100644
--- a/csharp/ProtocolBuffers.Test/lib/Rhino.Mocks.dll
+++ b/csharp/lib/Rhino.Mocks.dll
Binary files differ
diff --git a/csharp/ProtocolBuffers.Test/lib/Rhino.Mocks.xml b/csharp/lib/Rhino.Mocks.xml
index f36b92f1..f36b92f1 100644
--- a/csharp/ProtocolBuffers.Test/lib/Rhino.Mocks.xml
+++ b/csharp/lib/Rhino.Mocks.xml
diff --git a/csharp/ProtocolBuffers.Test/lib/nunit-license.txt b/csharp/lib/nunit-license.txt
index 4beb762c..4beb762c 100644
--- a/csharp/ProtocolBuffers.Test/lib/nunit-license.txt
+++ b/csharp/lib/nunit-license.txt
diff --git a/csharp/ProtocolBuffers.Test/lib/nunit.framework.dll b/csharp/lib/nunit.framework.dll
index 3c401e69..3c401e69 100644
--- a/csharp/ProtocolBuffers.Test/lib/nunit.framework.dll
+++ b/csharp/lib/nunit.framework.dll
Binary files differ
diff --git a/csharp/ProtocolBuffers.Test/lib/rhino-license.txt b/csharp/lib/rhino-license.txt
index 1c8a46e4..1c8a46e4 100644
--- a/csharp/ProtocolBuffers.Test/lib/rhino-license.txt
+++ b/csharp/lib/rhino-license.txt