2012-09-10 33 views
1

请有人知道是否有办法自动修复包含版本引用的Visual Studio 2010 .csproj文件(例如通过删除版本)?上下文是我试图建立的一些第三方代码1000名的历史提交,对于一些的.csproj文件包含的参考版本时,他们不应该,如提交的:有没有办法在.csproj文件中自动修复版本化引用?

[ERROR] Found versioned reference on line: <Reference Include="<...>, Version=1.2.34567.89012, Culture=neutral, PublicKeyToken=<...>, processorArchitecture=MSIL" /> in <...>. Versioned references are not allowed. 

我可以想象写一个脚本来做到这一点,但这似乎有点痛苦(特别是因为脚本只会对这个特定的任务有用,之后无用) - 我理想的是寻找例如一个msbuild命令我可以运行.csproj文件来修复它们。有什么机会存在(不太有希望)? :)很明显,手动修复.csproj文件达到1000次提交并不是一种选择,因此看起来好像是这样或者写了一个脚本。

+0

这不是太难写一个MSBuild脚本列表所有.csproj文件,并使用https://github.com/loresoft/msbuildtasks中的FileUpdate任务对版本号进行查找/替换 – stijn

+0

您可以为此任务添加更多info \ samples。你是否锁定了msbuild脚本。你需要为你应该执行的1000个版本运行它吗? –

+0

上下文是我需要运行该修复程序作为一系列命令的一部分来检出和构建1000个提交中的每一个。我希望避免需要坐下来写代码来完成它,因为这是一个抛弃任务,但我想这就是它的前进方向。我并没有特别关注MSBuild - 伊利亚的C#建议可能是我可能会去的方式,除非我可以用'sed'或其他方法做一些有用的事情 - 我只是说MSBuild,因为我认为微软可能提供了一种方式“修复”破损的项目文件。显然不是! –

回答

1

如果您倾向于使用msbuild进行此操作并安装.net 4.0,则可以使用C#快速编写自己的内联任务。 我发布了sample of msbuild inline taskusage of it

如果您不仅限于msbuild - 我认为powershell脚本可以在几行内完成相同的工作。

相关问题