重构你的SOLN到2个项目:第一代的cs的文件,第二个使用它(作为一个DLL)。
第一个项目(称为Gen)有2个生成后事件:1运行该工具并重新创建源文件,2)编译Gen'ed src文件以供第二个项目使用:
Gen.exe
csc.exe /target:library Gened.cs
第二个项目(称为Use)引用了dll并调用它。
== Gen.cs
using System.IO;
namespace sm3
{class Gen
{static string bod = "public static int var = 46;";
static string clas = "public class Gened {" + bod + "}";
static string ns = "namespace sm3 {" + clas + "}";
static void Main(string[] args)
{StreamWriter SW;
SW = File.CreateText("Gened.cs");
SW.WriteLine(ns);
SW.Close();
}}}
== Use.cs
using System;
namespace sm3
{class Use
{static void Main(string[] args)
{Gened g = new Gened();
Console.Write(Gened.var.ToString());
Console.ReadLine();
}}}
我有同样的问题,太多,但我们的工具不会更改往往足以让我试图修复它:) – 2010-03-30 04:30:19
我也有同样的问题。我将我的预生成事件移到构建顺序的早期项目的构建后事件中,并且工作正常。 – AndrewS 2013-10-17 01:03:50