我正在使用MSBuild.exe v4.00。我在我的项目文件中有一个构建目标,它将名为Parameters.MyEnvironment.xml的文件复制到Parameters.xml。 “MyEnvironment”可以根据MSBuild.exe被调用的时间/地点而有所不同。MSBuild.exe复制任务无法正常工作,除非该文件的版本已经出现在目标中
这会运行,然后Parameters.xml被MSDeployPublish目标中的其他进程使用。
最后,我删除了文件Parameters.xml,因为它只是我的一个特定于环境的文件的副本。
如上所述运行时,MSDeployPublish目标的行为与Parameters.xml不同,但不报告错误。
但是,如果我删除删除任务,以便在我的项目构建完成后保留Parameters.xml,MSDeployPublish将会看到它并正确使用它。奇怪的是,任何对Parameters.MyEnvironment.xml的更改都会立即反映在下一个构建过程中。总结 - 将一个文件(之前没有的文件)复制到我的项目文件夹中,后续目标使用的文件不起作用。但是,如果我将原始文件保留在那里,并使用新版本的源代码覆盖它,它将反映新内容!
这位作者已经确定了MSBuild的锁定/开放文件问题,我是否在这里进行了同样的事情? http://dotnet.dzone.com/articles/using-custom-webconfig-0