5

这是针对 VS2010 下的 windows 窗体项目。

这是我从 MSBuild 收到的消息:

错误 RG0000:无法加载文件或程序集“3rdPartyAssemblyUsedByProject,版本=1.1.263.0,文化=中性,PublicKeyToken=687bce93d7ce902c”或其依赖项之一。访问被拒绝。第 174 行,位置 5。[C:\xxx\src\BackOffice.csproj]

这是用于启动此操作的命令行:

c:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/msbuild.exe BackOffice.csproj /p:PlatformTarget=x86

归因于错误的 resx 文件的第 174 行:

<data name="generalImages.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
    <value>
        ...
    </value>
  </data>

generalImages 是一个 ImageList 控件,其中的图像用于窗体上的按钮。

这在我的开发机器上工作正常,但在我的构建服务器上是一个问题。我的工作站是 Windows 7 64 位,构建服务器是 Windows 2008 Server 64 位。构建服务器确实安装了 windows 7.1 sdk。

如果我使用 v3.5 框架中的 msbuild,则编译成功完成。我确实收到了此警告消息,此时不会给我造成任何问题:项目文件包含 ToolsVersion="4.0",此版本的 MSBuild 不支持。将项目视为拥有 ToolsVersion="3.5"。

这样做的全部原因实际上是针对 4.0 框架并使用方法默认值之类的东西,这在针对 3.5 时不起作用。

我已经搜索并搜索了这个。我遇到了很多与 32 位/64 位问题相关的问题——图像格式是问题所在,但这不是我的问题。此错误显示“访问被拒绝”。我确实使用 fuslogvw 试图找出拒绝访问的来源 - 但我没有看到它是,但它实际上没有找到任何程序集。该程序集不在 GAC 中,而是在项目文件引用所在的项目文件的相切目录中。

这是融合日志:

*组装活页夹日志条目(8/30/2010 @ 1:44:48 PM)*

操作失败。绑定结果:hr = 0x80070002。该系统找不到指定的文件。

从以下位置加载的程序集管理器:C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll 在可执行文件 C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\ResGen.exe 下运行 --- A详细的错误日志如下。

=== 预绑定状态信息 === LOG: User = domain\user LOG: DisplayName = 3rdPartyAssemblyUsedByProject, Version=1.1.263.0, Culture=neutral, PublicKeyToken=687bce93d7ce902c (Fully-specified) LOG: Appbase = file:// /C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/ LOG:Initial PrivatePath = NULL LOG:Dynamic Base = NULL LOG:Cache Base = NULL LOG:AppName = NULL 调用程序集:System.Windows.Forms,版本=2.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089。=== LOG:此绑定在默认加载上下文中开始。LOG:使用应用程序配置文件:C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\ResGen.exe.Config LOG:使用来自 C:\Windows\Microsoft.NET\Framework64\v2.0.50727 的机器配置文件\config\machine.config。日志:政策后参考:3rdPartyAssemblyUsedByProject,版本=1.1.263.0,文化=中性,PublicKeyToken=687bce93d7ce902c 日志:GAC 查找不成功。日志:尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.DLL。日志:尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.EXE。日志:尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.EXE。LOG:所有探测 URL 都已尝试并失败。正在尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.DLL。日志:尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.EXE。日志:尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.EXE。LOG:所有探测 URL 都已尝试并失败。正在尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.DLL。日志:尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.EXE。日志:尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.EXE。LOG:所有探测 URL 都已尝试并失败。/程序文件/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.EXE。日志:尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.EXE。LOG:所有探测 URL 都已尝试并失败。/程序文件/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.DLL。日志:正在尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.EXE。日志:尝试下载新的 URL 文件:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.EXE。LOG:所有探测 URL 都已尝试并失败。

在这一点上——我被难住了。不知道下一步该去哪里。任何建议都会受到欢迎。

科尔特

4

4 回答 4

3

它看起来很像blogs.msdn.com 上描述的已知 VS 2010 错误。如果是这样,微软似乎决定最早在 Visual Studio 11 之前修复它,并且对于许多人(包括我们:|)来说,帖子中提到的解决方法都没有。祝你好运。

于 2011-02-08T13:04:30.900 回答
1

我对 ResGen 有类似的问题:错误 RG0000:无法加载引用的程序集。就我而言,结果发现解决方案中的一个项目文件没有正确升级到 vs2010。一旦我修复了对 4.0 的工具引用,它就可以正常工作。

于 2010-11-09T19:59:28.343 回答
0

团队构建在服务帐户下运行。您是否检查过此帐户是否有权访问第 3 方程序集所在的程序文件位置?

于 2010-08-30T20:57:44.227 回答
0

我遇到了这个MSDN 博客中描述的确切问题,正如@Joel 的回答中提到的那样。发布对我有用的解决方法可以节省其他人的时间,因为我刚刚用了半天时间来寻找解决方案。

该博客文章的评论部分讨论了我使用的解决方法,即搜索 j00L 并在发生错误的 resx 中将其替换为 j0yL。文件。此解决方法的不利方面是您需要编辑 resx。每次对图像列表进行更改时文件。

于 2014-04-09T09:39:39.190 回答