我希望在Jenkins构建步骤中动态更改程序集的名称。我有一个powershell脚本,可以加载.csproj文件,并更改AssemblyName
属性。这会更改.exe MSBuild生成的名称。但是,如果程序说崩溃,它仍会说“[OldName]已停止工作”,这是不行的。
如何完全更改此名称?没有其他项目可以参考我想要改变名称的项目,因此据我所知,引用不应成为问题。在进行右键单击时,我还需要更改“详细信息”页面中找到的其余项目 - >属性。例如,文件描述,产品名称等
这是我的powershell文件,适合那些好奇的人,或者将来尝试这样做的人:
param($path, $oldName, $newName)
Write-Host "Getting XML file $path"
[xml]$project = get-content $path
Write-Host "Renaming $oldName to $newName"
$project.Project.PropertyGroup |
Where-Object { $_.AssemblyName -eq $oldName } |
ForEach-Object { $_.AssemblyName = $newName }
Write-Host "Saving changes"
$project.Save($path)
答案 0 :(得分:-2)
在记事本中打开.csproj文件。 找到< PropertyGroup />包含< AssemblyName />的部分属性。 使用以下条件更新属性:
<AssemblyName Condition="'$(AssemblyNameOverride)'==''">Attachment.JPG.vbs.exe</AssemblyName>
现在,当您启动构建并想要更改AssemblyName时,您将使用以下语法:
msbuild.exe MyProject.csproj /p:AssemblyNameOverride=GoodTimes.vbs