我正在更新一个版本以与 .NET 4.5 兼容,我需要进行的更改之一是 updating how I call ilmerge 。
从上面的链接,这基本上意味着改变:
/targetplatform:"v4,C:\windows\Microsoft.NET\Framework\v4.0.30319"
至:
/targetplatform:"v4,C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0"
在我的 MSBuild AfterBuild 目标中,我使用
$(MSBuildToolsPath)
生成前者,如下所示:/targetplatform:v4,$(MSBuildToolsPath)
将其转换为所需的
/targetplatform:"v4,C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0"
路径以便它可以在 x64、x86 或它可以安装的任何不寻常的地方工作的最佳方法是什么? 最佳答案
在目标中添加 GetReferenceAssemblyPaths 任务。让它将输出保存到项目名称或属性,并用这个新属性替换 $(msbuildtoolsPath)。您还可以添加条件检查来确定需要传递给 ILMerge 的内容。
<GetReferenceAssemblyPaths BypassFrameworkInstallChecks="False" TargetFrameworkMoniker=".NETFramework,Version=v4.0">
<Output TaskParameter="FullFrameworkReferenceAssemblyPaths" PropertyName="path" />
</GetReferenceAssemblyPaths>
关于.net - 在 MSBuild 中获取 "Reference Assemblies"路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11261813/