【发布时间】:2012-09-03 05:38:03
【问题描述】:
请问有人知道是否有办法自动修复包含版本化引用的 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 命令来修复它们。有没有这样的机会存在(不太有希望)? :) 显然,为 1000 次提交手动修复 .csproj 文件不是一种选择,所以看起来就是这样或编写脚本。
【问题讨论】:
-
编写一个列出所有 .csproj 文件并使用来自 github.com/loresoft/msbuildtasks 的 FileUpdate 任务对版本号进行查找/替换的 msbuild 脚本并不难
-
您能否为这项任务提供更多信息\样本。您是否锁定了 msbuild 脚本。你需要为你应该执行的 1000 个构建中的每一个运行它吗?
-
上下文是我需要将修复作为一系列命令的一部分运行,以检查和构建 1000 个提交中的每一个。我希望避免坐下来编写代码来做这件事,因为这是一个一次性的任务,但我想这就是它的发展方向。我并不特别依赖于 MSBuild - Ilya 的 C# 建议可能是我可能会采用的方式,除非我可以对
sed或其他东西做一些有用的事情 - 我之所以说 MSBuild,是因为我认为 Microsoft 可能已经提供了一种方法“修复”损坏的项目文件。显然不是!
标签: visual-studio-2010 msbuild csproj