因此,我有一个commonAssemblyInfo.cs链接到解决方案中的所有项目中,并且由我的Rake/albacore脚本动态生成,该脚本未被检查为源控件。

当没有Ruby可用时,我也有一个commonAssemblyInfo.cs.local,主要是由开发人员使用。

是否可以在其他任何项目汇编之前运行MSBUILD任务或可以在尝试编译我的解决方案之前将CommunAssemblyInfo.cs.local复制到CommunAssemblyinfo.cs之前运行的内容?我讨厌必须有一个命令,您必须只知道和输入才能打开并在Visual Studio中打开解决方案。

更新因此,我最终使用批处理文件作为解决方案宽构建事件,如下所述: 范围范围内的预建事件?, ,它可以检查是否存在CommonAssemblyInfo.cs,如果不存在CommonAssemblyInfo.cs.local,则仅使用一个简单的批处理文件将其comman AssemblyInfo.cs.local concommblyinfo.cs.

有帮助吗?

解决方案

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

我将每个项目都在与commonAssemblyInfo.cs的解决方案链接中,该链接是由我的构建脚本(Rake + albacore)自动生成的。

由于我无法将CommanAssemblyInfo.cs检查到源控制中,因此我创建一个communAssemblyInfo.cs.local。

简单解决方案:创建go.bat,将commonAssemblyInfo.cs.local复制到公共AssemblyInfo.cs,Devs必须在第一次检查项目之前首次运行该项目,然后再打开VS中的解决方案。

为了 纯粹 政治原因,如果我这样做的话,这个人将对我做“非标准”的事情很适合。复杂解决方案如下:

我在解决方案中的解决方案中创建了一个项目,该项目在解决方案中的每个项目都取决于该项目。这迫使构建顺序使该项目首先构建。该项目包含一个预构建事件,该事件调用以下批处理文件:

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

因此,现在任何选择将头保持在沙子中的开发人员都可以结帐该项目,并在不知道任何构建脚本中都存在任何构建脚本。

其他提示

您是在谈论VS IDE中的汇编还是通过团队构建进行汇编?如果您谈论的是团队构建,则可以使用“ afterget”事件作为使用标准“复制” MSBUILD任务的场所。如果您在谈论VS IDE,则仍然可以使用“复制” MSBUILD任务。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top