我知道 Visual Studio 2008 中有以下两种不同类型的 Web 项目:
- 网站项目
- 网络应用项目
只要 Web 应用程序的程序集也使用相同的密钥签名,Web 应用程序项目就可以引用已签名的程序集。但是,这不适用于网站项目,因为没有地方可以签署程序集。我认为这是因为程序集是在服务器上动态编译的?
无论如何,是否有可能让网站项目与这个签名的程序集一起工作?还是我必须将此网站项目转换为 Web 应用程序项目?
编辑:
以下情况需要我就此事要求澄清:
我有一个类库,在我的 Visual Studio 解决方案中被其他几个项目引用。其中一个项目是将部署到特定外部用户的 Windows 应用程序。为了确保应用程序使用正确的程序集并防止其他人使用该程序集(我知道关于其有效性的限制),所有程序集都已签名并声明了库中的所有类作为朋友(内部)。
该网站项目似乎没有办法让我签署它的程序集,并且在尝试使用库中的任何内容时收到以下消息:“CLASS 在这种情况下不可评估,因为它是'朋友'”,即可以预料。
以下属性位于我的类库项目的 AssemblyInfo.vb 文件中:
<Assembly: InternalsVisibleTo("OtherProject1, PublicKey=AAA...")>
<Assembly: InternalsVisibleTo("OtherProject2, PublicKey=AAA...")>
...
我的结论:
看起来最干净的方法是将网站转换为 Web 应用程序,但这需要一些时间,因为我们的网站已经非常充实,正如其他讨论中所指出的那样,可能会很痛苦做。展望未来,我认为首先创建一个 Web 应用程序可能是一个更好的想法,并且对于未来的开发更加灵活。