gpt4 book ai didi

msbuild - 版本控制 CommonAssemblyInfo.cs 和 MSBuild

转载 作者:行者123 更新时间:2023-12-02 00:39:56 25 4
gpt4 key购买 nike

所以我有一个 CommonAssemblyInfo.cs 链接到我的解决方案中的所有项目,它是由我的 rake/albacore 脚本动态生成的,它没有 checkin 源代码控制。

我还有一个 CommonAssemblyInfo.cs.local 供在没有可用的 ruby​​ 时使用,主要供开发人员使用。

在尝试编译我的解决方案之前,是否可以有一个 msbuild 任务或在任何其他项目编译之前运行的任务,这些任务会将 CommonAssemblyInfo.cs.local 复制到 CommonAssemblyInfo.cs?我讨厌必须有一个命令,你必须知道并键入才能在 Visual Studio 中打开和构建解决方案。

更新所以我最终使用批处理文件作为解决方案范围的预构建事件,如下所述:Solution-wide pre-build event? ,它会检查 CommonAssemblyInfo.cs 是否存在,如果不存在,则仅使用一个简单的批处理文件将 CommonAssemblyInfo.cs.local 复制到 CommonAssemblyInfo.cs。

最佳答案

这是我最终得到的解决方案。

我将解决方案中的每个项目都链接到 CommonAssemblyInfo.cs,这是由我的构建脚本 (rake + albacore) 自动为我生成的。

由于我无法将 CommonAssemblyInfo.cs checkin 源代码管理,因此我创建了一个 CommonAssemblyInfo.cs.local。

简单的解决方案:创建 go.bat,它将 CommonAssemblyInfo.cs.local 复制到 CommonAssemblyInfo.cs,开发人员在 VS 中打开解决方案之前第一次检查项目时必须运行它。

出于纯粹的政治原因,如果我这样做了,人们就会对我做“非标准”的事情大发雷霆。复杂的解决方案如下:

我在名为 PreBuild 的解决方案中创建了一个项目,解决方案中的每个项目都依赖该项目。这强制构建顺序是首先构建该项目。该项目包含调用以下批处理文件的预生成事件:

echo verifying CommonVersionInfo.cs exists
cd
IF NOT EXIST ..\..\..\CommonAssemblyInfo.cs COPY ..\..\..\CommonAssemblyInfo.cs.local ..\..\..\CommonAssemblyInfo.cs

因此,现在任何选择将头脑埋在沙子里的开发人员都可以检查项目并在 VS 中愉快地打开它,而根本不知道任何构建脚本的存在。

关于msbuild - 版本控制 CommonAssemblyInfo.cs 和 MSBuild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2930984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com