問題タブ [vcxproj]
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.
visual-studio-2017 - Visual Studio 2017 プロジェクトでビルドしますが、_MSC_VER は 1900 を示します
プロジェクトに問題があり、誰かがヒントをくれるかもしれません。で前回作成または更新されたソリューション内にプロジェクトがありますVisual Studio 2015
。では、このプロジェクトを でビルドしたいと思いVisual Studio 2017
ます。
そのため、パラメーターを使用してバッチ ファイルを開始%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat amd64
します。次に、コマンドでプロジェクトをアップグレードしますdevenv solution.sln /Upgrade
。次の出力が表示されます。
このUpgradeLog.htm
では、次の警告のみが表示されます。
次に、プロジェクトがビルドされると、プロジェクトのビルド時に次のメッセージが表示されます (実際のプロジェクト名、ソース ファイルの名前、および実際のパスを削除しました。これは問題になりません)。
しかし後で、コマンドでファイルproject.lib
を検索すると、次の出力が得られます (数回):_MSC_VER
find "_MSC_VER" project.lib
しかし、私はこの出力を取得することを期待していました( でビルドしたためVisual Studio 2017
):
これはどうしてですか?
visual-studio - (のみ) .exe コンテンツ アイテムがダーティである場合に、VS にプロジェクトをダーティと見なさせるにはどうすればよいですか?
私の C++ プロジェクトには、出力ディレクトリに逐語的にコピーする必要がある一連の (コード以外の) ファイルが含まれています。.vcxprojに設定されたContent
ノードとしてそれらを追加しました。例えば:CopyToOutputDirectory
PreserveNewest
これはほとんど機能します。プロジェクトをビルドすると、タイムスタンプが既存のものよりも新しい場合、各コンテンツ ファイルが出力ディレクトリに正しくコピーされます。しかし...実際のコンパイル済みコード ファイルを同時に変更せずにこれらのコンテンツ ファイルの 1 つを更新すると、Visual Studio 2017 はプロジェクトが既に最新であると判断し、ビルドせず、新しいバージョンのファイルをコピーしません。コンテンツ ファイルを出力ディレクトリにコピーします。これについて私にできることはありますか?動作しないもの:
- ノード下
PublishState
への設定Prerequisite
Content
DependentUpon
コード ファイルのノードの下にコンテンツ ファイルをノードとしてリストする
編集: さらに調査した結果、動作はコンテンツ ファイルの拡張子に依存するようです。たとえば、dll は希望どおりに動作します (タイムスタンプが更新された場合、プロジェクトはダーティとマークされ、ビルドされます) が、exe はそうではありません。
qt - Qt、Visual Studio 2017、.vcxproj.user ファイル
複数のマシンで Visual Studio 15.9.14 と Qt 5.13.0 を使用しています。バージョン管理からソースをチェックアウトすると:
- VS IDE を開いてソリューションをビルドすると、すべてが正しくコンパイルおよびリンクされます。
- devenv.exe を使用してコマンド ラインからソリューションをビルドすると、Qt プロジェクトで複数のコンパイル エラーとリンク エラーが発生します。
問題は、コマンド ラインからビルドする場合、.vcxproj.user ファイルが生成されないため、プロジェクトで使用する $QTDIR が定義されていないことです。その結果、自動/夜間ビルドが失敗します。
ファイルを作成してビルド プロセスに統合するためのツールを作成できますが、そうする必要はありません。この問題は、VS/Qt 統合に関連しているようです。プロジェクトに触れてファイルを強制的に再生成しなければならなかったIDEでも同様の問題に遭遇しました。
任意の提案/ヘルプをいただければ幸いです。