我们有一个工具,产生一些代码(.cs)文件,用于建造项目。

编辑:这些文件的另一半一些分类,因此该建立过程中需要访问的来源。这是不可能编制成一个问题,例如,然后设定的建立秩序。

该工具的运行期间的预先建立的一步,但该文件被更新的解决方案之后,才建立,这意味着建立需要进行两次明显的错误之后的变化,以输入。

例如:

  • 修改工具输入文件
  • 运行建立
    • 工具运行的变化和源文件
  • 建立失败
  • 运行建立
    • 工具运行的变化和源文件(但并不是实际上的改变,因为输入的保持相同)
  • 建立成功

任何想法,我们如何才能做到与双建立,并且仍然让我们的工具以从VS?

谢谢你们!

有帮助吗?

解决方案 3

答案是"使用 蛋糕"和命

其他提示

它将是微不足道写一VS宏会执行工具,然后开始一个建立这样你就可以把整个执行过程的一个按键,在一个速度更快的方式这样做的一个双建立。

或者(或结合以上),可以添加一个自定义的工具,以VS工具的菜单,其执行工具(见的工具-->外部工具)。然后只是手动执行这个定制的工具之前执行该建立这仍然是一个繁琐的双步骤,但更快和更容易建设的两倍。(你可能会能够离开你的工具运行的预步骤建立这样的老双建立的方法仍将工作)。

另一个选择可以是编辑请参阅脚本项目的执行工具及早在建立过程,以便改变该文件期间的依赖关系扫描(所以只有一个通过建立是需要的)。

没有这些都是伟大的解决方案,但希望他们能给你一个导致提供一个可以接受的改进,在当前的情况。

重构溶液入2个项目:第一代的cs文件,第二个使用它(如dll)。

第一项目(称它艮)具有2后建立的事件:1运行工具和重新创造的源文件,和2)编写的艮'ed src文件使用的第2个项目:

Gen.exe 
csc.exe /target:library Gened.cs

第二个项目(称它使用)的参考dll,并呼吁它。

==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();
    }}}

==使用。cs

using System;
namespace sm3
{class Use
    {static void Main(string[] args)
        {Gened g = new Gened();
         Console.Write(Gened.var.ToString());
         Console.ReadLine();
         }}}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top