2008-11-03 25 views
0

我有一个源XML文件,用于创建C#文件,然后将其作为项目的一部分进行编译。
目前我有一个BeforeBuild目标,它运行我的XML到C#转换器。
问题是,在运行BeforeBuild步骤之前,旧文件似乎已被构建系统存储,因此新文件将被忽略。msbuild中动态生成的C#文件存在问题

我该如何解决这个问题?看起来,变革将是一种方式,但他们在做什么方面受到限制。

回答

1

我猜你的“由构建系统存储”可以被翻译为包含你想编译的.cs文件的ItemGroup是在读取msbuild文件时生成的,而不是当你的编译目标被执行时。您有几种选择:

  1. <CreateItem>看到CreateItem task
  2. <Output>看到Output element

我希望这有助于。

0

那么我们在这里有类似的东西。我们使用.tt创建了一个.cs文件。这两个文件都是特定csproj的一部分。去属性 - >上的csproj BuildEvents给出了预生成事件命令行这个小片段:

del "$(ProjectDir)MyCsFile.cs" 
copy /b /y "$(ProjectDir)\MyXmlFile.xml" "$(TargetDir)" 
"$(ProjectDir)tt.bat" "$(ProjectDir)MyTemplateFile.tt" 

没有如果这是任何使用你的想法,我希望它可能足以作为一个最后的机会解决办法。

0

我想你需要向我们展示一些规则/构建文件。您应该对以xml作为依赖关系的cs文件拥有规则/依赖关系。

我不知道你所说的

“通过构建系统存储”仔细检查您的规则,误/漏报的意思。