0

我有一个SQL触发器项目。如何让构建后脚本的“创建程序集”输出文本?

目前,当我去“项目 - >发布”,我可以选择“生成的脚本”,它会为我一个剧本,包括通过线路我的项目的组件:

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将它放在另一个文件中,但是如何在生成后生成它?

回答

0

要做到这一点,我需要在我的构建脚本两个步骤:

#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 "-", "" } 
0

只需将.ps1文件添加到.csproj文件中,如果不存在,则写入块<propertyGroup>。这似乎是这样的:

<Target> ... </Target> <PropertyGroup> <PostBuildEvent>Powershell.exe -ExecutionPolicy Unrestricted -file "$(SolutionDir)$(ProjectName)\postbuild.ps1"</PostBuildEvent> </PropertyGroup>