我有自定义MSBuild任务后执行:AfterBuild事件为解决方案中的每个项目。 我不想将每个项目文件修改为: 一旦我修改了Visual Studio(VS 2012 Ultimate)中的项目,说添加或删除文件/引用,Visual Studio就会清除所有对项目文件所做的自定义更改。MSBuild - 执行自定义目标无w/o修改单个项目
我不想用“CustomAfterMicrosoftCommonTargets”提到here,因为没有办法,而从Visual Studio构建通过这个命令行参数:
msbuild.exe app.proj /属性:CustomAfterMicrosoftCommonTargets = custom.target
我找到了一个解决方案here,但我并不完全明白。 任何人都可以请详细说明或帮助我找出更好的解决方案吗?
更新5/12/2014: 我知道,如果我在管理员模式下运行Visual Studio,Visual Studio不会消除自定义更改。 我现在可以想到有一个自定义导入文件已获得所需的覆盖,但我仍然需要为解决方案中的每个项目执行此操作。如果有人添加了一个新项目,他们必须记得添加这个定制。我不喜欢这样,但现在可能我可以生活。
我试图使用“CustomAfterMicrosoftCommonTargets”方法,但我无法从Visual Studio的Pre-build事件中设置此属性,即使以管理员身份运行也没有帮助。 我试图从Pre-Build事件中设置一个具有相同名称的环境变量,但在执行MSBuild时我从未获得新值。
谢谢!
您确定VS是否覆盖您对项目文件的更改?我已经在所有项目中使用了VS2012和2013以及自定义目标,并且从未遇到VS移除我的目标的问题。 –
^Seva说什么:如果VS修改你的项目文件,你做错了什么。也许显示你如何尝试在项目文件中实现你的自定义目标? – stijn
我想,如果您没有在管理模式下运行,Visual Studio会消除您的自定义更改。切换到管理员模式后,我的更改现在保留。不过,我希望有一个解决方案,而不是修改解决方案中的每个单独项目。 –