找不到所需文件'将setup.bin“ [英] Could not find required file 'setup.bin'

查看:1999
本文介绍了找不到所需文件'将setup.bin“的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法打造VS2010安装项目,对一个Windows服务项目。它失败,此错误:

I'm unable to build a Setup Project in VS2010, for a Windows Service project. It fails with this error:

无法找到所需的文件将setup.bin在'C:\ MyProject的\引擎

Could not find required file 'setup.bin' in 'C:\MyProject\Engine'.

我的环境是的 Windows 7专业版64 的用的的Visual Studio 2010版本10.0.40219.1 SP1Rel

我已经下载的Microsoft Windows SDK的Windows 7和.NET Framework 4 ,修复,然后重新启动,则除了安装的Visual C ++编译器,再装 KB2519277

I've downloaded Microsoft Windows SDK for Windows 7 and .NET Framework 4, repaired, then rebooted, then installed the unchecked components except Visual C++ compiler, then installed KB2519277.

这些都是现有的注册表项:

These are the existing registry entries:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\GenericBootstrapper\3.5
    Path = c:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\GenericBootstrapper\4.0
    Path = c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\

这些都是现有的文件:

C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Engine\setup.bin

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Engine\setup.bin

这是现有的解决方法是将引擎目录复制到项目目录,但是这完全有你犯了一个新的项目时间来完成。

An existing workaround is to copy the Engine directory to the project directory, however this has to be done every time you make a new project.

这又如何妥善固定?

更新我在解决这一作了一次尝试,并公布了答案,但我会离开的问题没有答案了几天,以允许任何额外的输入。

Update I've made another attempt at solving this and posted an answer, but I'll leave the question unanswered for a few more days to allow any additional input.

推荐答案

通过进程监视器,我发现,前右试图访问的路径,一个DLL用于获取这条道路。以下可能是边缘性的法律,但我想反正分享我的发现。

With Process Monitor I found that, right before trying to access the path, a DLL is used to retrieve this path. The following may be borderline legal, but I'd like to share my findings anyway.

该DLL位于 C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Build.Tasks.v4.0.dll 和类正在使用的 Microsoft.Build.Tasks.Deployment.Bootstrapper.BootstrapperBuilder 。使用您喜欢的反汇编工具,你可以找到在检索路径,最终尝试三次制成。

The DLL is located at C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Build.Tasks.v4.0.dll and the class being used is Microsoft.Build.Tasks.Deployment.Bootstrapper.BootstrapperBuilder. Using your favourite disassembly tool, you can find that ultimately three attempts are made at retrieving the path.

  1. 在HKLM \软件\微软\ GenericBootstrapper \ 11.0 \路径
  2. 在HKLM \ SOFTWARE \ Wow6432Node \微软\ GenericBootstrapper \ 11.0 \路径
  3. Environment.CurrentDirectory

我不确定为什么它说的 11.0 的,据我记得VS 2012还没有被安装在本机上了。

I'm unsure why it says 11.0, as far as I can remember VS 2012 has not been installed on this machine before.

所以这是在SDK安装错误或有一个在DLL中的错误。无论哪种方式,创造的 11.0 的注册表项,并添加值可以解决此问题。注意:Visual Studio中,必须重新启动,因为试图检索路径后,它被缓存

So there's a bug in the SDK installer or there's a bug in the DLL. Either way, creating the 11.0 registry key and adding the value resolves this issue. Note: Visual Studio must be restarted, because after attempting to retrieve the path, it is cached.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\GenericBootstrapper\11.0]
"Path"="C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Bootstrapper\\"

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\GenericBootstrapper\11.0]
"Path"="C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Bootstrapper\\"

这篇关于找不到所需文件'将setup.bin“的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆