windows - Hvordan kan jeg løse 'Metadata foo.dll ikke fundet!' fejl ved udarbejdelse af C # kode på kommandolinjen?

Indlæg af Hanne Mølgaard Plasc

Problem



På min Windows 7-arbejdsstation har jeg en række kompilatorer installeret - herunder MSVC9 og MSVC10. Jeg har for nylig bemærket følgende mærkelige problem, som kun forekommer i mit MSVC10-miljø.


I min MSVC9 shell (jeg bruger den fra startmenuen) viser running csc.exe at den bruger C # 2008 compiler version 3.5.30729.4926 (.NET 3.5). I MSVC10 skalen er det kompilator version 4.0.30128.1. Nu bygger det følgende lille prøveprogram med csc.exe ud fra MSVC9, men det mislykkes med MSVC10:


using System;
using System.Windows.Automation;

namespace UIAutomationTest
{
    class Program
    {
        static void Main()
        {
        }
    }
}


Jeg bruger følgende kommandolinje (med MSVC9 samt MSVC10) til at opbygge programmet:


csc Hello.cs /r:UIAutomationClient.dll /nologo


Med MSVC9 lykkes dette (ingen udgang er trykt og Hello.exe er bygget). Med MSVC10 mislykkes bygningen med denne fejlmeddelelse:


C:src>csc Hello.cs /r:UIAutomationClient.dll /nologo
error CS0006: Metadata file 'UIAutomationClient.dll' could not be found


Er der nogen der ved, hvorfor det er?


UPDATE: Jeg har bemærket, at jeg kan gøre byggearbejdet med MSVC10, hvis jeg ændrer kommandolinjen, så /r:UIAutomationClient.dll bliver /r:WPFUIAutomationClient.dll.

Bedste reference


Hvor er denne UIAutomationClient.dll-fil placeret i forhold til dine cs-filer?


Prøv at overføre den fulde sti til UIAutomationClient.dll.