使用第三方库打包C#应用程序?

时间:2010-07-14 14:03:44

标签: c# installer packaging

我有一个使用BouncyCastle框架的应用程序,如何打包这个应用程序,以便我不必手动将BouncyCastle的.dll放在其他计算机上?我假设这可以通过安装程序或类似的东西来完成?应用程序默认情况下在哪里查找引用的第三方库?

3 个答案:

答案 0 :(得分:2)

作为替代方法,您可以将装配体注入主装配体。 有一些cemmercial工具可以支持DeepSea Obfuscator,或者您可以使用ilmerge

一般的工作方式是使用单独的程序集进行开发,并在运送产品时执行额外的构建步骤,将程序集合并到一个大程序集中。您甚至可以内化注入的程序集,以便只能访问您的公共接口。

通过这种方式,您可以将产品部署为单个程序集,如果您正在构建组件,则该程序集尤为出色。

回答你的第二个问题; .NET框架将在几个位置查找。 GAC占主导地位但如果确保引用的程序集与主程序集位于同一文件夹中,.NET将会找到它。无需在GAC中注册。

答案 1 :(得分:1)

您需要创建安装程序。最好的开始是ClickOnce。它将使您能够将所有需要的文件合并为一个并提供安装UI。

第二个问题。查找程序集的默认位置是GAC

答案 2 :(得分:1)

由于BouncyCastle是托管库,如果您在Visual Studio中创建安装程序项目并将应用程序的exe添加到其中,安装程序将自动检测对BouncyCastle的依赖关系,并将其添加到安装程序项目中。当用户安装你的应用程序时,BouncyCastle的dll会自动复制到安装目录中,一切都会很好。