src/BuildFrame.ps1
|
. $PSScriptRoot\ConstProgramCheck.ps1 if (!$programFrame) { #_if PSEXE #这是该脚本被ps12exe编译时使用的预处理代码 #_include_as_value programFrame "$PSScriptRoot/programFrames/default.cs" #将default.cs中的内容内嵌到该脚本中 #_else #否则正常读取cs文件 [string]$programFrame = Get-Content $PSScriptRoot/programFrames/default.cs -Raw -Encoding UTF8 #_endif } # 资源/版本属性抽到公共片段(AssemblyInfo.cs),编译时替换帧里的 /*__ASSEMBLY_ATTRIBUTES__*/ 标记。 # 只有“最外层”程序集(launcher / 直编帧)替换成属性;payload 替换为空,因此帧本身与资源参数无关。 if (!$resourceAttributes) { #_if PSEXE #_include_as_value resourceAttributes "$PSScriptRoot/programFrames/AssemblyInfo.cs" #_else [string]$resourceAttributes = Get-Content $PSScriptRoot/programFrames/AssemblyInfo.cs -Raw -Encoding UTF8 #_endif } $programFrame = $programFrame.Replace("`$lcid", $lcid) $programFrame = $programFrame.Replace("`$threadingModel", $threadingModel) $programFrame = $programFrame.Replace("`$TargetFramework", $TargetFramework) $resourceAttributes = $resourceAttributes.Replace("`$TargetFramework", $TargetFramework) $resourceParamKeys | ForEach-Object { $resourceAttributes = $resourceAttributes.Replace("`$$_", $resourceParams[$_]) } |