InstallShield输出错误的引用二进制文件

时间:2013-02-24 15:25:39

标签: visual-studio nuget installshield

我有一个应用程序在Visual Studio内置时工作正常。当此应用程序由Visual Studio 2012标准InstallShield项目构建时,它不会。

该应用使用System.Threading.Tasks中的NuGet。使用Visual Studio构建应用程序时,它会输出正确的版本。使用InstallShield安装程序构建时,会部署不同的System.Threading.Tasks。这会导致应用程序崩溃。

我的问题是,为什么将System.Threading.Tasks的不同版本作为主要输出发送到安装程序项目?

我希望我已经解释得这么好了。有关详细信息,请参阅随附的屏幕截图。

参考属性

Reference Properties

调试输出

Debug Output

安装程序输出

Installer Output

2 个答案:

答案 0 :(得分:0)

要解决此问题,我将System.Threading.Tasks.dll直接从NuGet文件夹添加到安装程序输出中。这似乎覆盖了安装程序所获得的System.Threading.Tasks.dll - 这可能是Visual Studio在创建Debug输出时在幕后所做的事情。

答案 1 :(得分:0)

不知道这是否会对任何人有所帮助..但我对Telerik.Windows.Data程序集也有同样的问题。

即使我在构建安装程序时我想要打包并引用我的项目中的版本,但由于某种原因我不断从某个地方获取旧版本

我最终修复它的方法是对我的C:\驱动器进行全面搜索,并删除除我想要的特定部分之外的所有内容(有很多随机的telerik.windows.data遍布整个地方)。它似乎适用于我猜它是从其他地方捡起来的