首页 > 解决方案 > “GenerateResource”任务意外失败。System.InvalidOperationException

问题描述

在将项目从 2008 年迁移到 2012 年之后,在构建或重建时面临这个问题。

详细错误如下,

错误 2 “GenerateResource”任务意外失败。System.InvalidOperationException:AppDomain 的安全状态由配置了 NoSecurityChanges 标志的 AppDomainManager 修改。在 System.AppDomain.SetupDomainSecurity(AppDomainHandle appDomain、ObjectHandleOnStack appDomainEvidence、IntPtr creatorsSecurityDescriptor、Boolean publishAppDomain)在 System.AppDomain.InitializeDomainSecurity(证据提供的SecurityInfo、证据 creatorsSecurityInfo、布尔 generateDefaultEvidence、IntPtr parentSecurityDescriptor、布尔 publishAppDomain)在 System.AppDomain.Setup(对象参数) 在 System.AppDomainManager 的 System.AppDomain.nCreateDomain(String friendlyName, AppDomainSetup setup, Evidence providedSecurityInfo, Evidence creatorsSecurityInfo, IntPtr parentSecurityDescriptor)。

我该如何解决?

标签: visual-studiovisual-studio-2010visual-studio-2012visual-studio-2015msbuild

解决方案


“GenerateResource”任务意外失败。System.InvalidOperationException

根据报错信息,都是常见的错误,这个问题我无法给出最直接的正确答案,只能给你一些排查问题。为了避免在来回评论中失去联系,我把那些贴出来故障排除作为答案而不是评论。

要解决此问题,请尝试以下方法:

  • 添加<NetFx40_LegacySecurityPolicy enabled="true"/>到 VS2012 DevEnv 配置文件中,你会在C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe.config

  • 在项目文件的第一个属性组下添加以下内容:

    <属性组>
        <GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>
    </项目组>
    
  • 如果您的项目中有 app.config 文件,请尝试在其中添加以下内容:

    <runtime>
      <NetFx40_LegacySecurityPolicy enabled="true"/>
      <legacyCasPolicy enabled="true"/>
    </runtime>
    
  • 如果以上对您没有帮助,请尝试重新安装 Visual Studio 2012。

希望这可以帮助。


推荐阅读