我们有一个包含win32 dll作为内容文件的项目.此文件(native32.dll)将复制到输出目录并在运行时导入. Visual Studio编译项目没有任何问题,但是TeamCity获取此.dll文件(或项目结构中包含的任何.dll文件)并将其视为引用:
csc.exe <..> /reference:native32.dll <..>
构建失败并出现错误:
CSC error CS0009: Metadata file 'native32.dll' could not be opened -- PE image doesn't contain managed metadata
如何排除这个native32.dll被引用?
解决方法:
您需要创建一个类库,并在该库中包含DLL以及包装器/互操作类.然后只引用您之前无法编译的其他项目中的类库.