3

VS2008でビルドした古いプロジェクトの1つを開こうとしましたが、Windows Mobile 6デバイス(.NET Compact Framework 3.5)を対象としたクラスライブラリがあります。古き良きVS2008以降、VS、AFAKではモバイルデバイスはサポートされていません。これで、VS2012がCF3.9とモバイルデバイスを再びサポートし、CF3.5との下位互換性があることをどこでも読むことができます。彼らは今それを「WindowsEmbeddedCompact」と呼んでいると思います。しかし、すべてはただのブログです。

新しいCompactFrameworkのSDKはどこにありますか?まだリリースされていますか、それともCTPのリリース日はわかっていますか?現在、VS2012でWM6 [.5]のアセンブリをコンパイルする方法はありますか?

CF3.5プロジェクトを再コンパイルする必要があります。

4

2 に答える 2

8

この「どこでも」あなたが読んでいる場所は定かではありませんが、それは間違っています。CompactFramework3.9はまだリリースされていません。これは、Windows Embedded Compact(Window CE)2013がリリースされたときにリリースされます。これは、今年の前半(2013)に予定されています。

リリースされた場合でも、Visual Studio 2012、または以前のバージョンのWindowsCEのCompactFramework3.9を使用することはできません。ツールとコンパイラーは2013年のみのものになります(私がこれに同意または好きだと言っているのではなく、事実を報告するだけです)。

WinMo 6.xをターゲットにしている場合、今日の唯一のオプションは、Studio2008を使用したCF2.0またはCF3.5であり、新しいバージョンのCFがリリースされた場合でも、これが変更されるとは思われません。

于 2013-01-11T15:22:43.017 に答える
6

したがって、いくつかのcsprojの調整を行うことで、VS2012でCF3.5を構築できます。まず、NETCFSetupv35.msiとNETCFv35PowerToys.msiをインストールします。x64ビットのものを修正するには、followreghackを使用する必要がある場合があります。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0]
"Language"="1033"
"Version"="3.5.7283"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0\InstallRoot]
@="C:\\Program Files (x86)\\Microsoft.NET\\SDK\\CompactFramework\\v3.5\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0\PocketPC]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0\PocketPC\AsmmetaBinder]
"TypeName"="Microsoft.CompactFramework.Build.PocketPC.BindingService, Microsoft.CompactFramework.Build.Tasks, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, Custom=null"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0\PocketPC\AsmmetaBinder\4118C335-430C-497f-BE48-11C3316B135E]
"TypeName"="Microsoft.CompactFramework.Build.WM50PocketPC.BindingService, Microsoft.CompactFramework.Build.Tasks, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, Custom=null"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0\PocketPC\AssemblyFoldersEx]
@="C:\\Program Files (x86)\\Microsoft.NET\\SDK\\CompactFramework\\v3.5\\WindowsCE\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0\PowerToys]
"Language"="1033"
"Version"="3.5.7338"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0\PowerToys\InstallRoot]
@="C:\\Program Files (x86)\\Microsoft.NET\\SDK\\CompactFramework\\v3.5\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0\Smartphone]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0\Smartphone\AsmmetaBinder]
"TypeName"="Microsoft.CompactFramework.Build.SmartPhone.BindingService, Microsoft.CompactFramework.Build.Tasks, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, Custom=null"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0\Smartphone\AsmmetaBinder\BD0CC567-F6FD-4ca3-99D2-063EFDFC0A39]
"TypeName"="Microsoft.CompactFramework.Build.WM50SmartPhone.BindingService, Microsoft.CompactFramework.Build.Tasks, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, Custom=null"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0\Smartphone\AssemblyFoldersEx]
@="C:\\Program Files (x86)\\Microsoft.NET\\SDK\\CompactFramework\\v3.5\\WindowsCE\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0\WindowsCE]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0\WindowsCE\AsmmetaBinder]
"TypeName"="Microsoft.CompactFramework.Build.WindowsCE.BindingService, Microsoft.CompactFramework.Build.Tasks, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, Custom=null"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetCompactFramework\v3.5.0.0\WindowsCE\AssemblyFoldersEx]
@="C:\\Program Files (x86)\\Microsoft.NET\\SDK\\CompactFramework\\v3.5\\WindowsCE\\"

次に、これに似た新しい.targetファイルを作成する必要があります。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(BuildForWinCE)' == 'true'">
    <MSBuildBinPathCF>C:\Windows\Microsoft.NET\Framework\v3.5</MSBuildBinPathCF>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <PlatformFamilyName>WindowsCE</PlatformFamilyName>
    <PlatformID>E2BECB1F-8C8C-41ba-B736-9BE7D946A398</PlatformID>
    <IntermediateOutputPath>obj\WinCE</IntermediateOutputPath>
    <OutputPath>bin\WinCE</OutputPath>
    <FrameworkRegistryBase>Software\Microsoft\.NETCompactFramework</FrameworkRegistryBase>
    <AssemblyFoldersSuffix>$(PlatformFamilyName)\AssemblyFoldersEx</AssemblyFoldersSuffix>
    <AssemblyFoldersExConditions>,OSVersion=$(OSVersion):Platform=$(PlatformID)</AssemblyFoldersExConditions>
    <TargetCompactFramework>true</TargetCompactFramework>
    <DefineConstants>$(DefineConstants);WindowsCE</DefineConstants>
    <NoStdLib>false</NoStdLib>
  </PropertyGroup>
</Project>

次に、新しいターゲットファイルと条件付きコンパクトフレームワークターゲットをcsprojに含めることができます

<Import Project="Compact.targets" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Condition="'$(BuildForWinCE)' == 'true'" Project="$(MSBuildBinPathCF)\Microsoft.CompactFramework.Common.targets" />

WinCE用にビルドする場合は、次のパラメーターを設定するだけです。

BuildForWinCE=true
于 2013-05-25T17:10:55.077 に答える