如何获取 post-build 脚本的 "create assembly" 输出文本?
How get the "create assembly" output text for post-build script?
我有一个SQL触发项目。
目前,当我转到 "Project->Publish" 时,我可以选择 "generate script",它会为我生成一个脚本,并通过一行包含我的项目程序集:
GO
CREATE ASSEMBLY [MyProject.MyObject]
AUTHORIZATION [dbo]
FROM 0x4F5C8000....
WITH PERMISSION_SET = UNSAFE;
GO
ALTER ASSEMBLY [MyProject.MyObject]
DROP FILE ALL
ADD FILE FROM 0x4D5743....
我想在 build
上生成它并将其作为文本抓取(对于 Powershell),这样我就可以将它放在另一个文件中。
我知道如何通过 powershell 将它放在另一个文件中,但是如何在 post-build 上生成它?
只需将您调用的.ps1文件添加到.csproj文件中,如果不存在则写入块<propertyGroup>
。好像是这样的:
<Target>
...
</Target>
<PropertyGroup>
<PostBuildEvent>Powershell.exe -ExecutionPolicy Unrestricted -file "$(SolutionDir)$(ProjectName)\postbuild.ps1"</PostBuildEvent>
</PropertyGroup>
为此,我需要在构建脚本中执行两个步骤:
#Step 1: Get the file as bytes
$fileBytes = Get-Content -Path $myFilePath -Encoding Byte
#Step 2: Convert it to Hex using a BitConverter
#Step 2a: Remove the dashes it puts in each byte's hex
$fileInHex = [System.BitConverter]::ToString($fileBytes) | ForEach-Object { $_ -replace "-", "" }
我有一个SQL触发项目。
目前,当我转到 "Project->Publish" 时,我可以选择 "generate script",它会为我生成一个脚本,并通过一行包含我的项目程序集:
GO
CREATE ASSEMBLY [MyProject.MyObject]
AUTHORIZATION [dbo]
FROM 0x4F5C8000....
WITH PERMISSION_SET = UNSAFE;
GO
ALTER ASSEMBLY [MyProject.MyObject]
DROP FILE ALL
ADD FILE FROM 0x4D5743....
我想在 build
上生成它并将其作为文本抓取(对于 Powershell),这样我就可以将它放在另一个文件中。
我知道如何通过 powershell 将它放在另一个文件中,但是如何在 post-build 上生成它?
只需将您调用的.ps1文件添加到.csproj文件中,如果不存在则写入块<propertyGroup>
。好像是这样的:
<Target>
...
</Target>
<PropertyGroup>
<PostBuildEvent>Powershell.exe -ExecutionPolicy Unrestricted -file "$(SolutionDir)$(ProjectName)\postbuild.ps1"</PostBuildEvent>
</PropertyGroup>
为此,我需要在构建脚本中执行两个步骤:
#Step 1: Get the file as bytes
$fileBytes = Get-Content -Path $myFilePath -Encoding Byte
#Step 2: Convert it to Hex using a BitConverter
#Step 2a: Remove the dashes it puts in each byte's hex
$fileInHex = [System.BitConverter]::ToString($fileBytes) | ForEach-Object { $_ -replace "-", "" }