C#は電気羊の夢を見るか?(引っ越し中)

dtiブログが閉鎖とのことでhttp://tanocs.blog.fc2.com/へ引っ越します。

VC#2010EEで対象のフレームワークが変更できない時の対処方法

現在XNA4.0化を進めていたのですが、いくつかハマったので情報として残しておく。


参照アセンブリ "Microsoft.Xna.Framework.Content.Pipeline,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553" は、
現在のターゲット フレームワーク ".NETFramework,Version=v4.0,Profile=Client" 内にない
"Microsoft.Build.Utilities.v4.0, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" に依存するため、解決できませんでした。
ターゲット フレームワーク内にないアセンブリへの参照を削除するか、
プロジェクトを再ターゲットしてください。

上記エラーメッセージが表示された時の対処方法として
XNA4.0ではデフォルトがおそらく
[.NET Framework 4 Client Profile]なので
これを[.NET Framework 4]としたい。

しかし、VC#2010 Expressだと
『プロジェクトプロパティ→アプリケーションタブ→対象のフレームワーク』から変更ができない。

そこでコンパイルターゲットをExpress Editionで変更するのと同じ方法で、
エラーが出ているプロジェクトファイル(*.csproj)を適当なテキストエディタで開き
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
となっているのを
<TargetFrameworkProfile></TargetFrameworkProfile>
と変更すれば良い。

蛇足として、この方法では『無印→Client』の逆方向への変換はできなかった。


XNA4.0化を対応していると、全体的に煩わしさを取り除くことに注力しているなぁという印象。
その経緯には携帯端末への対応のため、どうしても処理を単純化せざるを得なかった背景もあるように思う。

しかし、この単純化が原因でDirectXにほど近い機能のいくつかが削除されてしまった。
最も痛手だったのはFillMode.Pointの廃止。
これを利用して頂点シェーダからGPGPUを実装していただけに、完全に足元を失ってしまった。
どうにか実現できないかと、あれこれやってみたが、どうにもダメっぽい。

DirectXからFillModeの設定変更を無理やりラップしてみて、
ダメそうならSlimDXへの移行を検討する予定。
このエントリーをはてなブックマークに追加
LINEで送る

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://t01a.dtiblog.com/tb.php/134-4a965fef

« Windows7で64bit版WindowsMediaEncorder9を使う  | HOME |  知らんかった・・・ »

PAGE TOP ▲

Appendix

■春条

■春条

生息地は愛知
車と甘い物が好きな31歳
特技は無限昼寝

MONOからSharpDXを使う
変態的な手法で、
.NET Frameworkを使わずに
ゲーム作りやってます。

Search

Calender

« | 2017-06 | »
S M T W T F S
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -

Twitter

Recent Entries

DTIブログポータルへ
このブログを通報
Report Abuse

利用規約