Visual studio 2010 Visual Studio安装项目-强制安装.DLL?

Visual studio 2010 Visual Studio安装项目-强制安装.DLL?,visual-studio-2010,installation,windows-installer,Visual Studio 2010,Installation,Windows Installer,我有一个第三方.DLL的更新,必须安装到我客户的计算机上。我们目前通过在VisualStudio2010中创建的MSI进行自动安装 不幸的是,第三方.DLL的版本控制不正确,并且提供程序没有增加它的文件版本(它们只增加了程序集版本)。第三方提供商是Microsoft,因此等待他们解决问题是不现实的。我们需要得到新的.DLL的人现在和在一个微星更新。现在,MSI更新没有覆盖.DLL 在VS2010安装项目中是否有一种方法可以强制重写.DLL,即使文件版本匹配?如果您愿意进行msi后期构建调整,您可

我有一个第三方.DLL的更新,必须安装到我客户的计算机上。我们目前通过在VisualStudio2010中创建的MSI进行自动安装

不幸的是,第三方.DLL的版本控制不正确,并且提供程序没有增加它的文件版本(它们只增加了程序集版本)。第三方提供商是Microsoft,因此等待他们解决问题是不现实的。我们需要得到新的.DLL的人现在和在一个微星更新。现在,MSI更新没有覆盖.DLL


在VS2010安装项目中是否有一种方法可以强制重写.DLL,即使文件版本匹配?

如果您愿意进行msi后期构建调整,您可以点击文件表并执行“版本设置”。另一个想法是不要把DLL放在安装中。从Microsoft查找一个安装程序(如果存在),您可以将其放入引导程序中,或者创建自己的安装程序,并使用AMUS而不是OMUS作为版本规则。

您不能将该文件作为“文件”添加到安装程序中,然后与其他文件一起安装吗?不要将其设置为项目输出或任何固定安装操作。转到文件部分,右键单击“应用程序文件”文件夹,然后说>添加文件。导航到所需的文件并选择它。

否。MSI有一个名为“文件成本核算”的过程,该过程看起来是文件版本(AssemblyFileVersion),而不是AssemblyVersion属性。如果DLL的旧版本和新版本具有相同的版本号,MSI不会覆盖它,即使它们不同。即使您明确告诉它复制文件?您可以创建一个自定义安装程序类,从MSI创建的临时文件夹复制dll,然后在复制后将其删除?现在我有种恶心的感觉……我试着把这个文件作为一个普通文件放进包中,并把它从输出中排除。它没有在旧版本上部署。是否使用安装程序类?为什么我没想到呢?无法将.DLL包含到包中。没有MSM可供使用,我无法更改开关安装参数。自动更新代码已在该字段中运行。当它运行时,它使用基本上执行静默升级的命令行运行。你能详细说明一下“版本谎言”吗?版本谎言是指你更新文件表,诱使MSI认为它有一个比实际版本更新的版本。有一些小问题,但基本上它会为单个组件提供一个始终覆盖。真正的解决方案是使用您的资源遵循适当的SCM实践(是的,遗憾的是我们在这里谈论的是Microsoft)。感谢进一步的阐述,但我不确定如何以编程方式解决版本切换问题。谷歌帮不了多少忙。你能提供一个链接,说明你将如何做?谢谢,您必须执行以下操作,仅对文件表执行。FWIW,这是我从不使用VDPROJ的众多原因之一。它的能力太有限了。