Msbuild 如何在ms post事件宏中获取公共令牌

Msbuild 如何在ms post事件宏中获取公共令牌,msbuild,Msbuild,我想创建一个生成后脚本,将生成的pdb复制到gac文件夹中,如下所示:copy$(TargetDir)$(TargetName)。pdb C:\Windows\assembly\gac\u MSIL\$(TargetName)\?Public Token?但是我需要当前生成项目的公共令牌,有没有办法得到它?从您的问题中,我想您正在寻找可以从Visual Studio快速添加到生成后事件中的内容。如果使用XCOPY,则可以在目标路径中指定通配符。这对您来说可能已经足够了: XCOPY "$(Tar

我想创建一个生成后脚本,将生成的pdb复制到gac文件夹中,如下所示:copy$(TargetDir)$(TargetName)。pdb C:\Windows\assembly\gac\u MSIL\$(TargetName)\?Public Token?但是我需要当前生成项目的公共令牌,有没有办法得到它?

从您的问题中,我想您正在寻找可以从Visual Studio快速添加到生成后事件中的内容。如果使用
XCOPY
,则可以在目标路径中指定通配符。这对您来说可能已经足够了:

XCOPY "$(TargetDir)$(TargetName).pdb" "%WINDIR%\Assembly\GAC_MSIL\$(TargetName)\*\"
另一个选项是尝试使用框架提供的
SN.exe
提取公钥令牌。这可能看起来像:

FOR /F "usebackq tokens=5" %%T in (`sn.exe -q -T "$(TargetDir)$(TargetName).dll"`) DO COPY ""$(TargetDir)$(TargetName).pdb" "%WINDIR%\Assembly\GAC_MSIL\$(TargetName)\%%T\"
但实际上,目标目录不包括程序集版本和公钥令牌吗

最后,您可以随时下载库,其中包含一个
程序集
任务(或自己实现一个自定义任务)。不过,在这种情况下,您需要手动编辑项目文件

另外,看看这个-你可能会感兴趣