繁体   English   中英

如何解决“找不到元数据foo.dll!” 命令行上编译C#代码时出错?

[英]How can I resolve 'Metadata foo.dll not found!' errors when compiling C# code on the command line?

在Windows 7工作站上,我安装了各种编译器-包括MSVC9和MSVC10。 我最近注意到以下奇怪的问题,仅在我的MSVC10环境中会发生。

在我的MSVC9 Shell(我从开始菜单中使用一个)中,运行csc.exe显示它正在使用C#2008编译器版本3.5.30729.4926(.NET 3.5)。 在MSVC10 Shell中,它是编译器版本4.0.30128.1。 现在,以下小示例程序从MSVC9开始使用csc.exe生成,但在MSVC10上失败:

using System;
using System.Windows.Automation;

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

我使用以下命令行(与MSVC9和MSVC10一起)来构建程序:

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

使用MSVC9,此操作成功(不输出任何输出并构建Hello.exe )。 使用MSVC10,构建失败并显示以下错误消息:

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

有人知道为什么吗?

更新:我注意到,如果我修改命令行,使/r:UIAutomationClient.dll变为/r:WPF\\UIAutomationClient.dll ,则可以使构建与MSVC10 /r:WPF\\UIAutomationClient.dll

此UIAutomationClient.dll文件相对于CS文件位于哪里?

尝试传递UIAutomationClient.dll的完整路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM