Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.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# dll归档的最佳实践_C#_Visual Studio_Dll - Fatal编程技术网

C# dll归档的最佳实践

C# dll归档的最佳实践,c#,visual-studio,dll,C#,Visual Studio,Dll,因此,也许这不是维护dll的最佳实践,但目前我正在使用当前dll版本的存储库和旧版本的存档。这样做的目的是,当希望在任何给定项目中添加对其中一个dll的引用时,可以更快地浏览到给定dll的当前版本 因此,当在项目中使用一个时,我将“copy local”设置为true。然而,我刚刚意识到,路径仍然设置在存储库位置,并且项目中的dll将自动替换为repo版本(如果更新) 另一个意图是在适当的时候手动更新到更新的dll,进行管理,并且可以进行测试,而不是引入潜在的破坏性更改 我现在看到,这可能是一种

因此,也许这不是维护dll的最佳实践,但目前我正在使用当前dll版本的存储库和旧版本的存档。这样做的目的是,当希望在任何给定项目中添加对其中一个dll的引用时,可以更快地浏览到给定dll的当前版本

因此,当在项目中使用一个时,我将“copy local”设置为true。然而,我刚刚意识到,路径仍然设置在存储库位置,并且项目中的dll将自动替换为repo版本(如果更新)

另一个意图是在适当的时候手动更新到更新的dll,进行管理,并且可以进行测试,而不是引入潜在的破坏性更改


我现在看到,这可能是一种设计,因为在部署中,错误版本的共享dll可能会破坏功能。因此,我想知道在如何维护或如何进行的问题上是否有一致的想法?

最佳实践肯定是使用包管理器,在C#中,通常是这样


这说明了如何托管和部署您自己的服务器。之后,您可以通过nuget以与管理外部DLL相同的方式管理公司DLL。

听起来您是在寻找nuget包而不是程序集引用。NuGet源aka存储库可以是本地或共享文件夹。您可以设置NuGet服务器来帮助实现此方案。同意。NuGet现在甚至支持基于文件的存储库,因此根本没有进入壁垒。我们还尝试了您链接到的示例,它在基于文件的解决方案之上提供了一个薄层,然后我们当前使用的解决方案是我们的CI(TeamCity)的本机支持,它可以自动打包和托管NuGets,这真的很方便。是的,这看起来对正在进行的采用很有用。我没有想过这种方法。然而,对于这个特殊的项目,由于目前的时间限制,我负担不起,所以我想我应该在名称中包含版本号。如果版本在repo-current文件夹中演变,它当然会打嗝,但在这一点上,如果有中断,我可以重新引用新归档的版本。尽管Nuget可能只对我们有用,但仍在进行中,尤其是使用基于文件夹的方法-干杯!还有一点小问题,不过看起来VS或VB不喜欢名称中的下划线或句点-FileNotFoundException!事实上,重命名dll是一个问题!