有没有办法在.csproj文件中自动修复版本化引用?

时间:2012-09-10 10:57:36

标签: visual-studio-2010 msbuild csproj

请问有没有人知道是否有办法自动修复包含版本化引用的Visual Studio 2010 .csproj文件(例如删除版本)?上下文是我正在尝试构建一些第三方代码的1000个历史提交,对于某些提交,.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.

我可以想象编写一个脚本来做它,但这似乎有点痛苦(特别是因为脚本只对这一个特定任务有用,之后无用) - 我理想地寻找例如我可以在.csproj文件上运行msbuild命令来修复它们。有这样的机会存在(不太有希望)? :)显然手动修复.csproj文件1000次提交不是一个选项,所以它看起来就是这样或编写脚本。

2 个答案:

答案 0 :(得分:2)

通过System.Xml.Linq或某些Microsoft.Build.Evaluation来搜索一次性控制台应用程序而不是搜索现有任务会更快,类似于Resolving incorrect project reference GUIDs

答案 1 :(得分:1)

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

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