问题标签 [aspnet-merge]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
40 浏览

asp.net - ASP.NET 预编译和合并强名称签名证书

我有一个 ASP.NET 应用程序,该应用程序当前正在进行强名称签名,这似乎运行良好,并且该应用程序在构建时不会根据程序集清单接受具有冲突公钥令牌的 DLL,但是我遇到的问题是在发布期间使用预编译和合并选项时。

我目前使用的预编译合并选项是“将所有输出合并到单个程序集”,并且从 aspnet_merge.exe 生成的 DLL 名称不强,应用程序似乎并不关心,按正常运行。

经过一番研究,我发现 aspnet_merge.exe 有一个参数来提供 -keyfile,虽然这在 Visual Studio 的发布 GUI 中不可用(至少我看不到),所以我编写了一个脚本,将密钥信息附加到命令。在更改后检查合并的输出 DLL 时,我可以看到它实际上现在是强命名的,但问题是 Web 应用程序没有像其他强命名 DLL 那样验证公共令牌,我假设是因为它在构建时不是程序集清单的一部分?

有没有办法从 aspnet_merge.exe 实现一个强命名的 DLL,这也是像其他 DLL 一样验证的公共令牌?

感谢任何建议或意见。