【发布时间】:2011-09-13 19:32:31
【问题描述】:
我为我们的 CI 流程创建了一个 MSBuild 脚本,在这个脚本中我使用一个 MSBuild 任务来编译解决方案:
<PropertyGroup>
<MyOutPath>Output</MyOutPath>
</PropertyGroup>
<MSBuild
Projects="MySolution.sln"
Targets="Clean;Rebuild"
Properties="OutputPath=$(MyOutPath)\%24(AssemblyName)">
</MSBuild>
我希望 c# 项目文件使用类似的输出路径
- 项目 MyAssemblyName1 的输出\MyAssemblyName1
- 项目 MyAssemblyName2 的输出\MyAssemblyName2
AssemblyName 属性来自 C# 项目文件,我希望在构建项目时在 OutputPath 属性中展开它。
现在,%24(AssemblyName) 只是在文件系统上生成 Output\$(AssemblyName),这不是我想要的。
毫不奇怪,使用 $(AssemblyName) 在“父”MSBuild 文件中扩展为空。
有没有办法在目标项目文件中推迟对 AssemblyName 属性的解析?
另外,我不想修改 .csproj 文件,因为我希望 CI 系统的影响最小。
【问题讨论】: