Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在不使用GAC的情况下共享库?_C#_.net_Asp.net_Visual Studio 2008_.net 3.5 - Fatal编程技术网

C# 如何在不使用GAC的情况下共享库?

C# 如何在不使用GAC的情况下共享库?,c#,.net,asp.net,visual-studio-2008,.net-3.5,C#,.net,Asp.net,Visual Studio 2008,.net 3.5,我有一个图书馆,打算被许多网站使用。我现在的做法是在库的属性中,将“生成后事件命令行”设置为:复制“$(TargetPath)”“$(SolutionDir)\MyWebsite\bin\$(TargetFileName)” 每次我想让一个新网站使用共享库时,我都会添加这样一行:copy“$(TargetPath)”“$(SolutionDir)\MyWebsite2\bin\$(TargetFileName)” 除了使用GAC,还有什么简单或更好的方法可以做到这一点吗?在我看来,您的问题在于无

我有一个图书馆,打算被许多网站使用。我现在的做法是在库的属性中,将“生成后事件命令行”设置为:复制“$(TargetPath)”“$(SolutionDir)\MyWebsite\bin\$(TargetFileName)”

每次我想让一个新网站使用共享库时,我都会添加这样一行:copy“$(TargetPath)”“$(SolutionDir)\MyWebsite2\bin\$(TargetFileName)”


除了使用GAC,还有什么简单或更好的方法可以做到这一点吗?

在我看来,您的问题在于无法控制该库是如何被其他项目生成和使用的。如果我是你(我不是:),我会开始通过一个单元测试合作项目来开发这个库,在这个项目中,新的功能可以独立开发和测试。一旦该功能被实现并测试为在单元测试参数内工作,手动将程序集复制到web项目的“library”文件夹中,该文件夹首先需要扩展该库(该文件夹保存该项目使用的所有编译程序集)

更好的做法是维护一个版本系统,在其中标记库的新版本,以便跟踪它所使用的确切源版本

我建议使用一种看似麻烦的工作方法的原因是,您当前的做法使您现有的网站非常脆弱,因为在库中对一个网站所做的更改实际上可能会破坏另一个网站。。。随着网站数量的增加,你不可能永远在现有网站上对共享库的新版本进行复古测试


也正是出于这些原因,我也不建议使用GAC。

如果他每次为其进行新构建时都对其程序集进行版本化,只要他的安装程序在GAC中保持以前版本的完整性,将其放在GAC中不应该是一个问题。你说得对,我不应该在没有测试框架的情况下自动复制程序集。谢谢你的洞察力!!:)