プロが教える店舗&オフィスのセキュリティ対策術

vcxprojファイルのTargetFrameWorkVersionタグの修正法が分かりません


C++のセットアッププロジェクトの起動条件には .NET Framework 4 Client Profile
同じくセットアッププロジェクトの必須コンポーネントには Microsoft.NET Framework 4 Client Profile (x86 およびx64) を指定しました

アプリケーション側の対象フレームワークの指定法が分からなかったので放置してセットアッププロジェクトをビルドしたら
警告: プロジェクトの .NET Framework のターゲット バージョンが、.NET Framework 起動条件のバージョン '.NET Framework 4 Client Profile' と一致しません。.NET Framework 起動条件を更新して、[詳細コンパイル オプション] ダイアログ ボックス (VB の場合) または [アプリケーション] ページ (C#、F# の場合) の .NET Framework のターゲット バージョンと一致するようにしてください。
が出てしまいました

そこで色々と質問したら、C++ではアプリケーション側の対象フレームワークの変更はGUIでは出来ず、vcxprojファイルを直接修正するとのことでした
<TargetFrameWorkVersion>v4.0</TargetFrameWorkVersion>を修正するらしいのですが
(1)TargetFrameWorkVersionタグが見当たらない?
(2).NET Framework 4 を .NET Framework 4 Client Profile に変更する指定法は?

私のvcxprojは次の通りです、どのように修正すればよいのでしょうか???
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2 …
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{C6AD88BC-CDA0-44CF-B94B-2ED01782D9EE}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>My_MAIN</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>G:\Projects\My\Debug</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
        【入力文字数制限のため以下省略】

A 回答 (1件)

変更しようとしているプロジェクトの種類が .NETFrameworkを使用しない物のようです



WindowsFormアプリの場合
 <PropertyGroup Label="Globals">
  <ProjectGuid>{41C533F1-6B79-4F06-AE77-57066C481B32}</ProjectGuid>
  <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
  <Keyword>ManagedCProj</Keyword>
  <RootNamespace>VCForm01</RootNamespace>
 </PropertyGroup>
といった記述になります

また Client Profile を付け加えるのであれば
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
を付け加えて

 <PropertyGroup Label="Globals">
  <ProjectGuid>{41C533F1-6B79-4F06-AE77-57066C481B32}</ProjectGuid>
  <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
  <Keyword>ManagedCProj</Keyword>
  <RootNamespace>VCForm01</RootNamespace>
 </PropertyGroup>
といった具合にしてやればいいようです
    • good
    • 0
この回答へのお礼

ありがとうございます

ご指導頂いた通りにTargetFrameworkVersionとTargetFrameworkProfileのタグを挿入致しましたら一発OKになりました

なお『変更しようとしているプロジェクトの種類が .NETFrameworkを使用しない物』に関してですが、空のプロジェジトの生成を指定した影響かとも考えております ・・・・ 見当違いかもしれませんが ・・・・・

ありがとうございました、今後も宜しくお願い申し上げます

お礼日時:2012/11/06 06:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!