Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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
.net 如何作为预构建过程检查dll的新版本并引发警告_.net_Visual Studio 2013_Assemblies_Build Process_Projects And Solutions - Fatal编程技术网

.net 如何作为预构建过程检查dll的新版本并引发警告

.net 如何作为预构建过程检查dll的新版本并引发警告,.net,visual-studio-2013,assemblies,build-process,projects-and-solutions,.net,Visual Studio 2013,Assemblies,Build Process,Projects And Solutions,我不知道这是否可行,我也不一定需要按照我在这里设想的方式来做,所以如果你对如何完成同样的事情有更好的想法,请告诉我 我有一个企业项目,其中包含其他项目使用的几个程序集。每次更新企业项目时,我都必须将相应的程序集复制到SharedDependencies文件夹中,以供任何UI项目使用。正如您可以想象的,在测试过程中,当我们忘记复制它们时,它会变得令人沮丧。我们不能将它们作为生成后事件自动复制,因为如果我们进行了突破性的更改,那么我们不希望所有使用程序集的项目都自动获得新版本 我认为理想的情况是,如

我不知道这是否可行,我也不一定需要按照我在这里设想的方式来做,所以如果你对如何完成同样的事情有更好的想法,请告诉我

我有一个企业项目,其中包含其他项目使用的几个程序集。每次更新企业项目时,我都必须将相应的程序集复制到SharedDependencies文件夹中,以供任何UI项目使用。正如您可以想象的,在测试过程中,当我们忘记复制它们时,它会变得令人沮丧。我们不能将它们作为生成后事件自动复制,因为如果我们进行了突破性的更改,那么我们不希望所有使用程序集的项目都自动获得新版本

我认为理想的情况是,如果我可以编写一个预构建命令,检查是否有新的程序集可用,如果有,则抛出警告。不过我不知道我该怎么做?

任何事情都有可能,但这是对的吗

考虑一下。。。 您描述的情况正是——设计用来处理的。将这些共享库迁移到包中可能需要一些努力,但绝对值得

我有一个企业项目,其中包含由 其他项目

Nuget可以成为可靠分发共享库的关键推动者。当与TFS或Git结合使用时,通过忽略nuget包目录来使用是谨慎的。这可以减少提交膨胀和人为错误的引入。将包还原添加到项目后,VS可以在构建时自动下载包。您可以执行提交,并且可以合理地确信您将拥有正确的库

正如您可以想象的,在测试过程中,当我们忘记时,它会变得令人沮丧 把它们复制过来。我们无法将它们作为后期生成自动复制 事件,因为如果我们做出突破性的更改,那么我们不需要所有 使用程序集自动获取新版本的项目

并非所有包装都是用于生产的。Nuget将允许您使用语义版本控制来实现。这将防止开发人员意外使用未处于最终状态的包。为了查看包,具有的开发人员必须自愿筛选包列表以显示可用的预发布版本,然后添加它。这将允许您为测试目的可靠地共享包,同时保护它不被生产使用。但是,在此状态下提交项目将把预发布包锁定到构建中。所以你要感到疲倦


如果您可以合理地确信您的团队可以采用此策略,那么从长远来看,它将获得回报。但是,您应该注意的一点是,在创建了用于消费的包之后,您不需要web服务器来使用它们(尽管这是一个好主意)。甚至可以作为包源。

此功能已经存在,当参考程序集的[AssemblyVersion]发生更改时,您会收到一条响亮的消息。让程序员注意它,并阻止他们将程序集引用的特定版本属性设置为False,这是一个规程问题。没有自动化可以解决这个问题。感谢Nick,+1的回答,虽然我没有能力实现这一点,但即使我是,我觉得在学习如何做,然后实际做,以及确保其他人都参与到这一过程之间,启动这一过程所需的时间比听起来要长。NP,您唯一的另一个选择是使用MSBuild(抖动),开始扫描共享库上的程序集清单数据,以检查版本并进行适当复制。为什么不将复制任务绑定到特定的生成配置。。i、 e.调试与发布,并针对正确的情况选择正确的版本。