Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
aviso de operação de metadados (HRESULT) : warning_message
Observações
O vinculador detetou diferenças de metadados ao mesclar:
Um ou mais assemblies referenciados com o assembly que está a ser construído atualmente.
Um ou mais arquivos de código-fonte em uma compilação.
Por exemplo, LNK4227 pode ser causado se você tiver duas funções globais com o mesmo nome, mas informações de parâmetro declaradas de forma diferente (ou seja, as declarações não são consistentes em todos os compilandos). Use ildasm.exe object_file /TEXT /METADATA em cada arquivo .obj para ver como os tipos diferem.
LNK4227 também é usado para relatar problemas que se originam com outra ferramenta. Procure a mensagem de aviso para obter mais informações.
Os problemas de metadados devem ser corrigidos para resolver o aviso.
Examples
LNK4227 é gerado quando um assembly referenciado foi assinado de forma diferente do assembly que faz referência a ele.
O exemplo a seguir gera LNK4227:
// LNK4227.cpp
// compile with: /clr
using namespace System::Reflection;
[assembly:AssemblyDelaySignAttribute(false)];
int main() {}
E depois
// LNK4227b.cpp
// compile with: /clr LNK4227.cpp /FeLNK4227b.exe
using namespace System::Reflection;
using namespace System::Runtime::CompilerServices;
[assembly:AssemblyDelaySignAttribute(true)];
// Try the following line instead
// [assembly:AssemblyDelaySignAttribute(false)];
ref class MyClass
{
};
LNK4227 também pode ser gerado quando números de versão no formato errado são passados para atributos de assemblagem. A notação '*' é específica do AssemblyVersionAttribute. Para resolver esse aviso, use apenas números nos atributos de versão diferentes de AssemblyVersionAttribute.
O exemplo a seguir gera LNK4227:
// LNK4227e.cpp
// compile with: /clr /LD /W1
using namespace System::Reflection;
[assembly:AssemblyVersionAttribute("2.3.*")]; // OK
[assembly:AssemblyFileVersionAttribute("2.3.*")]; // LNK4227
// try the following line instead
// [assembly:AssemblyFileVersionAttribute("2.3")];