Visual Studio 2013拒绝构建解决方案,说“无法加载文件或程序集......无法授予最小权限请求”,0x80131417

时间:2014-09-08 18:51:27

标签: asp.net visual-studio-2013 windows-8.1 cas activereports

我有一个VS解决方案,用于构建罚款。它在VS 2010中一直很好用,并且构建得很好,直到我对一个引入第三方库(在本例中为ActiveReports3)的项目进行了一些修改,此时我无法再成功构建解决方案。相反,我得到以下错误(其中XX是相关项目的名称):

  

档案:LC
  行:
  专栏:
  项目:XX
  描述:'无法加载文件或程序集'ActiveReports3,Version = 5.3.1436.2,Culture = neutral,PublicKeyToken = cc4967777c49a3ff'或其依赖项之一。无法授予最低权限请求。 (HRESULT异常:0x80131417)'

请注意,这在执行期间不是例外;这是一个构建时错误,阻止了构建成功完成。

我通过Google搜索找到的大部分内容都表明我应该使用.NET Framework配置工具来创建CAS策略。这也是我自己的第一次猜测。但是,it looks like that was retired with the introduction of .NET 4,在我的Windows 8.1开发机器上找不到它,尽管在添加/删除Windows功能中安装了.NET的旧版本。我发现的许多页面和帖子也大约5年以上。

MSDN indicates I should be able to add a bit to my web.config设置信任级别。但是,我尝试添加为:

<configuration>
  <system.web>
    <trust legacyCasModel="True" level="Full"/>  <-- this line is what I really added
  </system.web>
</configuration>

但这似乎没有改变任何东西。有趣的是,Visual Studio不喜欢legacyCasModel="True"部分,并抱怨“不允许'legacyCasModel'属性”。但是,它似乎没有造成实际错误。

我在构建解决方案和不构建解决方案之间所做的只是重复一些C#源代码文件并修复它们,所以我没有得到语法错误(比如重复的类名)。

我把头发拉过来。搁置变化和重建成功。取消支持更改会导致构建再次失败。看着货架,我看不出任何明显的错误。 如何在不改变环境的情况下修复此错误?

有问题的程序集存储在UNC网络共享中。

我已检查过.NET版本的项目,并将其设置为.NET Framework 2.0。

我已经尝试将所有新添加的文件的构建操作设置为“无”,但这似乎没有改变任何更好的东西。

我尝试使用.NET 2.0和4.0 caspol.exe添加CAS策略,并且都返回一条错误消息,只是声明ERROR: Unable to load assembly。我已经验证我可以使用Notepad ++在其原始位置打开程序集DLL。

1 个答案:

答案 0 :(得分:0)

最终的罪魁祸首是项目中的属性文件,其中只包含一些文本,但 Build Action 属性字段设置为 Embedded Resource 。我仍然不能确切地理解导致这个属性显然被设置错误的行为。

将该文件的构建操作属性字段更改为似乎已解决问题而没有任何不良副作用。

因此,看起来最终,错误消息的重要部分是程序集说明符,并且&#34;未能授予最小权限请求&#34;真的是假领导。因此,检查您的非源代码项目文件&#39;构建动作属性以确保它们设置正确。