为什么Application.LocalUserAppDataPath抛出InvalidDeploymentException“未设置应用程序标识”。

时间:2011-03-29 08:06:47

标签: c# .net

我这里有一个简单的程序来证明我遇到的问题。我有一个我正在尝试使用的库.net和x86 / 32bit开发。现在我在64位和视觉工作室的窗口出现错误,因为该图像格式不正确所以我将构建目标更改为x86。现在我收到了访问LocalUserAppDataPath时出现的另一个错误。

    static void Main() {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Console.WriteLine(System.Windows.Forms.Application.LocalUserAppDataPath);
    }

有没有人知道如何解决这个问题。如果我在没有调试器的情况下运行它可以正常工作,但在visual studio调试器中它会给出异常。

1 个答案:

答案 0 :(得分:0)

使用Reflector追踪框架:

public static string LocalUserAppDataPath
{
   get
   {
      ...
      if (ApplicationDeployment.IsNetworkDeployed)

调用:

public static bool IsNetworkDeployed
{
   get
   {
      ...
      ApplicationDeployment currentDeployment = CurrentDeployment;

调用:

public static ApplicationDeployment CurrentDeployment
{
   ...
   get
   {
      ActivationContext activationContext = AppDomain.CurrentDomain.ActivationContext;
      ...
      fullName = activationContext.Identity.FullName;

      if (string.IsNullOrEmpty(fullName))
      {
         throw new InvalidDeploymentException(Resources.GetString("Ex_AppIdNotSet"));
      }

因此,请检查是否已分配AppDomain.CurrentDomain.ActivationContext

如果是,请检查.Identity.Fullname是否正确。