重構你的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