2

我需要即时制作我的程序集的签名副本。

我试图通过在构建后事件中添加这个脚本来做到这一点:

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。这可能有关系吗?

我怎样才能使这项工作?提前非常感谢。

4

1 回答 1

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
)

随后此帖子更改: 同一个项目不同的解决方案标志配置

于 2015-02-03T15:38:07.477 回答