Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln hjälper dig att lösa problemet där MSBuild 4.0 eller Microsoft Visual Studio 2010 inte kan kompilera ett 32-bitarsprogram som är avsett för .NET Framework 3.5, 3.0 eller 2.0 på x64-datorn.
Ursprunglig produktversion: Visual Studio 2010
Ursprungligt KB-nummer: 2028833
Symptom
Du skapar ett program som är avsett för x86-konfiguration på en x64-dator med Visual Studio 2010. Projektet innehåller en resursfil som refererar till en 32-bitars sammansättning. Målramverket som valts är 3.5, 3.0 eller 2.0.
Du kan få följande fel:
Form1.resx(161,5):error RG0000: Det gick inte att läsa in filen eller sammansättningen "<file_name>" eller något av dess beroenden. Ett försök gjordes att läsa in ett program med ett felaktigt format. Linje 161, position 5.
Diagnostikbyggloggen visar att uppgiften GenerateResource misslyckas.
Orsak
Resgen.exe i <system_drive>:\Program Files (x86)\Microsoft SDKs\Windows\vx.x\bin
, som är en del av Windows SDK, är markerad som MSIL, så den körs som en 64-bitarsprocess. Den försöker läsa in en 32-bitars sammansättning och misslyckas.
Lösning
För att kunna kringgå det här problemet måste du utföra följande steg:
Stäng alla instanser av Visual Studio.
Från undermappen Visual Studio Tools öppnar du en upphöjd Visual Studio-kommandotolk (2010) (med alternativet Kör som administratör ). Ändra katalog till
<system_drive>:\Program Files (x86)\Microsoft SDKs\Windows\v<x.xx>\bin\
.Utfärda kommandot:
corflags /32bit+ ResGen.exe /force
Öppna <project_name.csproj> i Anteckningar.
Lägg till egenskapen
<ResGenToolArchitecture>Managed32Bit</ResGenToolArchitecture>
under avsnittetPropertyGroup
. Spara och stäng csproj-filen.
Mer information
Om du vill skapa en .resx-fil som refererar till en 64-bitars sammansättning riktad mot v3.5, v3.0 eller v2.0 kan du behöva ändra den här lösningen innan du gör det.
CorFlagsCorFlags.exe (CorFlags Conversion Tool) kan hjälpa dig.