VS 2010 でビルドしている ac# プロジェクトがあります。これは、ソリューションの一部でもある COM を介して C++ プロジェクトを参照します。先週の金曜日にビルドを成功させ、コードを 1 行変更して別のビルドを作成したところ、.NET に関するエラーが発生し始めました。
プロジェクト内の .NET Framework のターゲット バージョンが、.NET Framework 起動条件のバージョン '.NET Framework 3.5' と一致しません。[高度なコンパイル オプション] ダイアログ ボックス (VB) またはアプリケーション ページ (C#、F#) で、.NET Framework の起動条件のバージョンをターゲット バージョンの .NET Framework と一致するように更新します。
- プロジェクト -> プロパティ -> アプリケーション -> ターゲット フレームワーク (デバッグとリリースの両方のプロジェクトごと)
- Project -> Properties -> Publish -> Prerequisites (.NET 3.5 および Windows Installer 3.1 を確認済み)
- セットアップ -> 起動条件 -> .NET Framework
- セットアップ -> プロパティ -> 前提条件
また、インストーラーの vdproj コードを確認し、起動条件が .NET 3.5 であることを確認しました。
"ComponentsUrl" = "8:"
"Items"
{
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5.SP1"
{
"Name" = "8:.NET Framework 3.5 SP1"
"ProductCode" = "8:Microsoft.Net.Framework.3.5.SP1"
}
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1"
{
"Name" = "8:Windows Installer 3.1"
"ProductCode" = "8:Microsoft.Windows.Installer.3.1"
}
}
"ComponentsUrl" = "8:"
"Items"
{
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5.SP1"
{
"Name" = "8:.NET Framework 3.5 SP1"
"ProductCode" = "8:Microsoft.Net.Framework.3.5.SP1"
}
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1"
{
"Name" = "8:Windows Installer 3.1"
"ProductCode" = "8:Microsoft.Windows.Installer.3.1"
}
}
"LaunchCondition"
{
"{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_799EF2A78D074B669D0B30310FD56A67"
{
"Name" = "8:.NET Framework"
"Message" = "8:[VSDNETMSG]"
"FrameworkVersion" = "8:.NETFramework,Version=v3.5"
"AllowLaterVersions" = "11:FALSE"
"InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=131000"
}
}
x86 と x64 の両方のコンパイラ用にビルドしているため、2 つのセットアップ プロジェクトがあります。2 番目の x86 プロセッサの場合、.NET エラーは発生しません。vdproj のコードをこれと比較しましたが、同じように見えます。
この問題に関するいくつかのスレッドを見つけました。ここには非常に優れたスレッドが含まれていますが、いずれもこの問題の解決に役立ちませんでした。どんな提案も役に立ちます。
編集
すべてを .NET 4.0 に変更して違いがあるかどうかを確認したところ、プロジェクトが正常にビルドされました。元に戻したところ、.NET バージョン エラーが再度表示されました。vdproj ファイルで「4.0」参照を確認したところ、動作する x86 バージョンのインストーラーでも発生した AspNetVersion のみが見つかりました。
"AspNetVersion" = "8:4.0.30319.0"
.NET 3.5 でリリースする必要があるため、これは、バージョンを別のものに変更して元に戻すことで問題が解決するかどうかを確認するための単なる演習でした。