問題タブ [anycpu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - .NET 2.0プロジェクトでCPUターゲットをx86に設定すると、.NET3.5の依存関係が追加されます
VS2008には、.NET2.0フレームワークを対象としたプロジェクトがあります。これは、AnyCPU用にビルドするための元のセットでした。私はそれをx86に変更しましたが、何らかの理由で、VSは.csprojに次の行を追加します。
.NET 2.0フレームワークをターゲットにする必要があるため、これが追加される理由と、安全に削除できるかどうかについて誰かが説明できますか。
ありがとう。
.net-3.5 - VSセットアッププロジェクトを使用して、32ビットまたは64ビットのWindowsに「任意のCPU」コードを正しくインストールするにはどうすればよいですか?
以下を含む製品の大規模なスイートがあります。
- VB6で書かれたデスクトップアプリ。
- .NETで記述されたデスクトップアプリ。
- .NETで記述されたWindowsサービス。
- .NETで記述されたASP.NETWebアプリ。
- .NETで記述されたASMXおよびWCFサービス。
すべての.NETコードはVS2008で記述されており、.NET3.5と「任意のCPU」を対象としています。特定のプロセッサをターゲットにすることもできますが、依存関係ツリーのさらに下で問題が発生するため、ターゲットにしない方がよいでしょう。.NET 4.0に移行することはできませんが、後でオプションになります。
すべてのアプリは、いくつかの重要なレジストリキーを共有しています。.NETコードが常に32ビットレジストリビューを参照するようにすることで、レジストリリダイレクトの問題を回避しました。
一部の.NETコードはCOM相互運用機能を介してVB6DLLと通信しますが、これは非常に制限されており、この依存関係を簡単に削除できます(今すぐコメントアウトし、後で.NETで書き直してください)。
すべてのWebアプリとサービスは、IISでホストされるように設計されています。5.1以降のすべてのバージョンをサポートする必要があります。
ビルドVMは現在WindowsXP(32ビット)を実行しています。必要に応じて新しいものを作成できます。
私の任務は、64ビットWindows(すべてのバージョン)ですべてが問題なく実行されることを確認することです。現在、.NETセットアッププロジェクトで問題が発生しています。これらはすべて、VS2008セットアッププロジェクトテンプレートを使用して作成されています。
ソースコードがAnyCPUであっても、セットアッププロジェクトにはこの機能がありません。TargetPlatform
プロパティを1つのプロセッサに設定する必要があります。これはあまり役に立ちません。setup.exe
32ビットO/Sに32ビットとして、64ビットO / Sに64ビットとしてインストールするものはありませんか?私がアプリをインストールするエンドユーザーの場合、実行するセットアッププログラムがわかりません。
c# - C#ソリューション、x86である必要があるものを除いてすべてのプロジェクトがAnyCPUをターゲットにできますか?
多くの異なるライブラリで構成される大規模なソリューションがあります。64ビットシステムでの開発に移行したばかりです。これにより、ソリューション内の個々のプロジェクトごとに指定する必要があるプラットフォームターゲットについて考える必要があります。
現在、32ビットDLLファイルを参照するライブラリプロジェクトは1つだけです。このDLLファイルの相互運用機能を参照しますが、ソリューション内の残りのプロジェクトを「任意のCPU」のままにして、このプロジェクトのプラットフォームとしてx86をターゲットにすると、エラーが発生します。
私の質問は、32ビット相互運用機能を参照するものを除くすべてのプロジェクトで任意のCPUをターゲットにできるかどうかです。または、x86用にすべてをビルドする必要があります。これはエラーなしで機能するようです。
visual-studio - Visual Studio 2010 Express でターゲット CPU 設定を変更する
Visual Studio 2010 でターゲット CPU の設定を「任意の CPU」から「x86」に変更したいと考えています。
別のウェブサイトで、次のことを行う必要があることを読みました。
- プログラムのスタートアップ プロジェクトに移動します。
- プロパティ ウィンドウを開きます。
- コンパイルタブをクリックします。
- 高度なコンパイル オプションをクリックします。
- ターゲット CPU オプションを x86 に変更します。
しかし、プロパティのどこにも「コンパイル」タブが表示されません。
一刻も早く助けてください。
更新: プラットフォームのドロップダウンが表示されますが、「Any CPU」以外には何も含まれていません。
.
.net - 既存のDLLのプラットフォームの変更
「AnyCPU」用に構築された3番目のDLLがあります。(特定の理由で)x86用に再構築する必要があります。既存のソースコードにアクセスできませんが、Reflectorを介して、自分で逆コンパイルして再コンパイルすることができます。
リフレクターパスを使用せずにこれを行う別の方法はありますか
.net - StackFrame.GetFileLineNumber() の動作は、アセンブリのプラットフォームおよび最適化フラグによって異なります
私は問題を理解しようとしていますが、たくさん読みましたが、この奇妙な組み合わせを説明するリソースを見つけることができないようです.
少し実験した後、コンパイラの最適化のオン/オフを設定し、AnyCPU/x86 プラットフォーム用にビルドすると、StackFrame.GetFileLineNumber() の動作が変わることがわかりました。
次の結果が得られる理由がわかりません (x64 システムで)
以下のコードは、問題を再現します。
上記のコードを保存code.cs
して、次のスクリプトでバッチ ファイルを作成すると、アセンブリがコンパイルされ、問題を簡単に解決できます。
.net-3.5 - x64 で実行される .NET ソフトウェアですが、任意の CPU 用に x86 でコンパイルされます (VS2008)
コンパイル済みプログラムで実行時エラーが発生するという問題があります。これは開発環境 (x86) では正常に機能しますが、運用環境 (x64) では機能しません。
この記事を見つけました。これは、ソフトウェアを任意の CPU としてコンパイルすると、64 ビット環境で実行されている場合、ソフトウェアが x64 ソフトウェアとして実行される可能性があることを暗示しているようです。
これは事実ですか? もしそうなら、ソフトウェアは任意の CPU でコンパイルされるべきですか?
.net - C# は 32/64 ビットまたは任意の CPU 用にコンパイルしていますか?
重複の可能性:
Visual Studio の「任意の CPU」ターゲット
VS で C# コードをコンパイルする場合、通常、32/64 ビット システム用にコンパイルするためのオプションがあり、任意の CPU 用にコンパイルするためのオプションもあることに気付きました。
2 つのオプションの違いは何ですか? 最初のオプションがマシンコードにコンパイルされるのに対し、CPUを選択すると中間バイトコードにコンパイルされるだけですか(これは私にはありそうにないように思えます)? または、他の何か?
c# - 32ビット(WOW64)で実行されている場合、C#AnyCPUアプリケーションを64ビットとして再実行するにはどうすればよいですか?
32ビットおよび64ビットWindows用のアプリケーションを開発しています。問題があります。アプリケーションが64ビットOS上の32ビットプロセスから起動された場合、アプリケーションは32ビットとして実行されます。32ビット(WOW64)で実行されている場合、C#AnyCPUアプリケーションを64ビットとして再実行するにはどうすればよいですか?
c# - 「Any CPU」アプリケーションが x64 マシンで x86 として実行されるのはなぜですか?
Program Files (x86) に Any CPU アプリケーションをインストールしています。ある Windows 7 x64 マシンでは期待どおり x64 として動作し、別の Windows 7 x64 マシンでは x86 として動作します!
どうすればいいの?両方のマシンで x64 として動作することを期待していました。何が原因で、常に x64 として実行するにはどうすればよいですか?
私の場合、どこから実行しているかは重要Program Files (x86)
ですか?