Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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# 强制安装程序安装具有相同assemblyversion但不同fileversion的程序集_C#_.net_Windows Installer - Fatal编程技术网

C# 强制安装程序安装具有相同assemblyversion但不同fileversion的程序集

C# 强制安装程序安装具有相同assemblyversion但不同fileversion的程序集,c#,.net,windows-installer,C#,.net,Windows Installer,我们的GAC中有一个版本为1.0.0.0的程序集xyz。我们需要将其替换为此程序集的另一个版本,该版本具有相同的1.0.0.0版本,但文件版本已升级到1.0.1.0。这是基于一项建议 但是,当我创建安装程序时,它成功运行,但是程序集没有被替换。我应该如何强制安装程序用新的程序集替换现有的程序集 编辑:我曾读到GAC采用AssemblyFileVersion,其中的差异应该会触发GAC中的替换,但它似乎不起作用 编辑:专家们能告诉我安装程序在替换dll时会做些什么吗?是AssemblyFileVe

我们的GAC中有一个版本为1.0.0.0的程序集xyz。我们需要将其替换为此程序集的另一个版本,该版本具有相同的1.0.0.0版本,但文件版本已升级到1.0.1.0。这是基于一项建议

但是,当我创建安装程序时,它成功运行,但是程序集没有被替换。我应该如何强制安装程序用新的程序集替换现有的程序集

编辑:我曾读到GAC采用AssemblyFileVersion,其中的差异应该会触发GAC中的替换,但它似乎不起作用


编辑:专家们能告诉我安装程序在替换dll时会做些什么吗?是AssemblyFileVersion还是AssemblyVersion?我在这方面读到了相互矛盾的陈述。

当程序集版本是平局时,则使用程序集文件版本。在我现在的雇主,我已经成功地使用这种策略好几年了。我的建议是手动运行gacutil,亲自查看行为


问题一定出在您为运行gacutil而创建的安装程序中。安装程序将有自己的文件覆盖规则(与GAC无关)。另外,可能您没有正确地从安装程序中运行gacutil。

您必须先从GAC卸载程序集,然后再运行安装程序。或者您可以直接升级程序集版本,也是。@Student:这可以通过安装程序完成吗?@vcsjones:很遗憾,我们需要维护程序集版本号,否则我们将不得不使用此程序集重建所有应用程序。我看到的解决方案是通过自定义操作启动gacutil.exe来删除旧程序集。之后,您的软件包可以安装更新的版本。