簡體   English   中英

將VC ++項目從.NET 4.0遷移到4.5?

[英]Moving VC++ Project from .NET 4.0 to 4.5?

我試圖將我的VC ++項目從.NET 4.0遷移到4.5。 我正在使用Visual Studio 2012。

使用在線指南,我認為我唯一要做的更改是編輯.vcxproj文件,為TargetFrameworkVersion添加以下行:

<Project ...>
    <PropertyGroup Label="Globals">
        <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> 
    </PropertyGroup>
</Project>

進行此更改后,屬性檢查器現在將目標框架版本正確列出為4.5。 但是,當我嘗試在我的C#.NET 4.5應用程序中加載VC ++程序集時,我得到了BadImageFormatException

在此處輸入圖片說明

是什么導致此異常? 我是否缺少將VC ++項目移至.NET 4.5的其他步驟?

右鍵單擊您的解決方案...轉到屬性...。單擊生成...檢查您的平台目標...確保與項目中的每個解決方案匹配

如果您的項目具有不同的平台目標,則會引發此異常。

如果為x86設置了平台目標,請確保在每個解決方案中都為x86設置了所有目標。

如果為x64設置了平台目標,請確保在每個解決方案中都為x64設置了所有目標。

這很可能與.NET Framework版本無關-您不會因為那里的不匹配而得到BadImageFormatException .NET 4.5可以加載早期的.NET Framework程序集。

您的C#應用​​程序更可能以x86運行,但您將C ++ / CLI項目編譯為x64,反之亦然。 檢查您要構建的項目的位數是否匹配。

請注意,Visual Studio 2010中更改了C#的默認位數。 因此,如果您要轉換的項目早於C#應用程序的<Prefer32Bit>可能已打開,則即使在x64計算機上,它也會作為x86運行。 請注意,不可能創建AnyCPU C ++ / CLI應用程序(假設您未使用/clr:pure ),因此,如果您的C#應用​​程序依賴於C ++ / CLI組件,則最好將C#應用程序標記為相同位數而不是AnyCPU。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM