我需要动态制作我的装配的签名副本。
我已经尝试通过在构建后事件中添加此脚本来实现此目的:
call "$(DevEnvDir)..\Tools\vsvars32.bat"
ildasm /all /out=MyAssemblySignedVersion.il $(TargetFileName)
ilasm /dll /key=MyAssembly.snk MyAssemblySignedVersion.il
但是,当我引用签名的程序集时,我得到一个运行时异常"无法加载文件或程序集' MyAssembly,Version = 1.2.5511.31417,Culture = neutral,PublicKeyToken = b025765091e877ec'或其中一个依赖项。系统找不到指定的文件。"
我尝试使用反射器从MyAssemblySignedVersion.dll创建项目,并且它没有编译,因为某些命名空间丢失了,可能是因为重新组装了反汇编的dll。这可能是相关的吗?
我该如何使这项工作? 非常感谢。
答案 0 :(得分:1)
我找到了一种方法来签署我的程序集的签名副本:我已经创建了新的解决方案配置:" ReleaseSigned",并且在构建后的事件中我放了这个脚本:
if $(ConfigurationName) == Debug (
echo "Building in DEBUG. Skipping signing..."
) else if $(ConfigurationName) == ReleaseSigned (
call "$(DevEnvDir)..\Tools\vsvars32.bat"
msbuild.exe "$(ProjectPath)" /property:Configuration=Release
)
随后这篇帖子发生了变化: same project different solution sign configuration