Asp.net 跨网站使用相同的应用程序代码类

Asp.net 跨网站使用相同的应用程序代码类,asp.net,app-code,Asp.net,App Code,假设您有一个包含两个网站项目的解决方案,网站a和网站B。现在在网站a的App_Code文件夹中,有一个ClassX.cs文件中定义的ClassX。如果网站B也需要访问ClassX.cs,你会怎么做 有没有办法跨应用程序代码文件夹共享此文件?假设将文件移动到公共库是不可能的。请不要使用这些邪恶的网站项目。使用Web应用程序项目,将共享类打包到库项目中,并从所有Web应用程序中引用它。将共享类打包到库(DLL)中从每个站点右键单击AddReference并选择您创建的库。我认为没有办法不将Class

假设您有一个包含两个网站项目的解决方案,网站a和网站B。现在在网站a的App_Code文件夹中,有一个ClassX.cs文件中定义的ClassX。如果网站B也需要访问ClassX.cs,你会怎么做


有没有办法跨应用程序代码文件夹共享此文件?假设将文件移动到公共库是不可能的。

请不要使用这些邪恶的网站项目。使用Web应用程序项目,将共享类打包到库项目中,并从所有Web应用程序中引用它。

将共享类打包到库(DLL)中从每个站点右键单击AddReference并选择您创建的库。

我认为没有办法不将ClassX移动到新的代码库项目中。NET要求所有程序集的依赖项都存在于与程序集本身相同的文件夹中,或者存在于GAC中,以便自动检测

您可以尝试通过反射类手动加载程序集,尽管这有点粗糙

如果您有足够的时间和意愿,最好的解决方案是使用JRoppert的解决方案,将其转移到web应用程序项目中。然后可以使用web引用(与VS中的常规引用一样有效)来引用ClassX

HTH

限制为“假设不可能将文件移动到公共库”。唯一的方法是使用NTFS连接点创建一个符号链接,使两个文件夹中的.cs文件相同

但这是一个糟糕的选择(出于版本控制的原因)…将其移动到公共库是最好的选择

这是关于NTFS连接点的Wikipedia条目

这里有一个创建它们的工具

“邪恶”是一个相当有力的词。使用网站模式是有正当理由的。并不是每个web应用程序都是由三个环境管理的部署企业应用程序。我不认为有任何理由使用web项目。我认为web应用程序在使用开发过程、构建过程、QA、共享开发等方面更专业。你使用网站项目的原因是什么?是的,'邪恶'可能有点强-但只有一点…我一直在努力让这个工作2年了(版本控制不是我工作的项目中的一个问题)。我从来不知道交叉点。非常感谢你!