我想创建一个后期构建脚本,将生成的pdb复制到gac文件夹中,如下所示:copy $(TargetDir)$(TargetName).pdb C:\ Windows \ assembly \ GAC_MSIL \ $(TargetName)\?公共令牌?但我需要当前构建项目的公共令牌,有没有办法得到这个?
答案 0 :(得分:0)
从您的问题来看,我认为您正在寻找可以从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\"
但实际上,目标目录是否包含程序集版本以及公钥令牌?
最后,您始终可以下载MSBuildExtensions库,其中包含Assembly
任务(或自行实施自定义任务)。但是,在这种情况下,您需要手动编辑您的proj文件。
另外,请查看此blog entry - 您可能会感兴趣。