作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个MSBuild脚本,可以编译我现有的解决方案,但是我想在编译时更改解决方案中项目之一的某些属性,包括但不限于AssemblyProduct和AssemblyTitle。
这是我的构建脚本的片段:
<Target Name="Compile" >
<MSBuild Projects="..\MySolution.sln"
Properties="Configuration=MyReleaseConfig;Platform=x86" />
</Target>
最佳答案
使用MSBuild扩展包,您的方向正确。
我发现在构建时有条件生成组装详细信息的最简单方法是将“AssemblyVersion”目标直接添加到需要更新的AssemblyInfo文件的.csproj文件中。您可以将目标直接添加到需要更新的AssemblyInfo文件的每个csproj文件中,或者按照我的意愿,使用AssemblyVersion目标创建一个自定义目标文件,并使每个csproj文件都包含您的自定义目标文件。
无论哪种方式,您都可能想使用MSBuild Extension Pack或MSBuild Community Tasks来使用它们各自的AssemblyInfo任务。
以下是我们的构建脚本中的一些代码:
<!-- Import the AssemblyInfo task -->
<Import Project="$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.Targets"/>
<!-- Overriding the Microsoft.CSharp.targets target dependency chain -->
<!-- Call our custom AssemblyVersion target before build, even from VS -->
<PropertyGroup>
<BuildDependsOn>
AssemblyVersion;
$(BuildDependsOn)
</BuildDependsOn>
</PropertyGroup>
<ItemGroup>
<AssemblyVersionFiles Include="$(MSBuildProjectDirectory)\Properties\AssemblyInfo.cs"/>
</ItemGroup>
<Target Name="AssemblyVersion"
Inputs="@(AssemblyVersionFiles)"
Outputs="UpdatedAssemblyVersionFiles">
<Attrib Files="%(AssemblyVersionFiles.FullPath)"
Normal="true"/>
<AssemblyInfo
CodeLanguage="CS"
OutputFile="%(AssemblyVersionFiles.FullPath)"
AssemblyCompany="$(CompanyName)"
AssemblyCopyright="Copyright $(CompanyName), All rights reserved."
AssemblyVersion="$(Version)"
AssemblyFileVersion="$(Version)">
<Output TaskParameter="OutputFile"
ItemName="UpdatedAssemblyVersionFiles"/>
</AssemblyInfo>
</Target>
关于msbuild - 如何使用MSBuild更改AssemblyProduct,AssemblyTitle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3585444/
在“旧”世界中,我会定义一个 AssemblyProductAttribute和 AssemblyTrademarkAttribute这将在 Windows 资源管理器的文件属性中显示为“产品名称”和
在“旧”世界中,我会定义一个 AssemblyProductAttribute和 AssemblyTrademarkAttribute这将在 Windows 资源管理器的文件属性中显示为“产品名称”和
我是一名优秀的程序员,十分优秀!