msbuild中动态生成的C#文件的问题
题
我有一个源XML文件,用于创建C#文件,然后将其作为项目的一部分进行编译 目前我有一个运行我的XML到C#转换器的BeforeBuild目标 问题是,在运行BeforeBuild步骤时,旧文件似乎已由构建系统存储,因此将忽略新文件。
我该如何解决这个问题?似乎变形将成为他们的方式,但他们的能力有限。
解决方案
我猜你的<!>“由构建系统存储<!>”;可以转换为包含要编译的.cs文件的ItemGroup在读取msbuild文件时生成,而不是在执行编译目标时生成。您有几种选择:
-
<CreateItem>
请参阅 CreateItem任务 -
<Output>
请参阅输出元素
醇>
我希望这会有所帮助。
其他提示
我们在这里有类似的东西。我们使用.tt生成一个.cs文件.cs。这两个文件都是特定csproj的一部分。 Going properties - <!> gt; csproj上的BuildEvents在Pre-build事件命令行中提供了这个小片段:
del "$(ProjectDir)MyCsFile.cs"
copy /b /y "$(ProjectDir)\MyXmlFile.xml" "$(TargetDir)"
"$(ProjectDir)tt.bat" "$(ProjectDir)MyTemplateFile.tt"
不知道这对你有用,我希望它可以作为最后的机会解决方法。
我认为您需要向我们展示一些规则/构建文件。您应该对具有xml作为依赖关系的cs文件具有规则/依赖关系。
我不确定构建系统存储的<!>“是什么意思<!>
仔细检查您的规则是否存在错误/遗漏。
不隶属于 StackOverflow