1

私は、〜100のプロジェクト(混合C#Winform、VC ++ Winform、およびUnmanaged C)のソリューションで作業しています。

「DatafiltersControls」(C#) という名前のプロジェクトがあり、「DatafiltersTypes」(VC++) という名前のプロジェクトへの参照があります。以下に示すのは、特定の参照の xml エントリです。

<ProjectReference Include="..\DatafiltersTypes\DatafiltersTypes.vcxproj">
  <Project>{360679FF-815C-4B39-8E5A-62C0D2A6DB31}</Project>
  <Name>DatafiltersTypes</Name>
  <Private>False</Private>
</ProjectReference>

さて、問題:「デザイナーは特定の状況下でのみコントロールをロードします」。多くの調査を行った後、開発環境とソリューションを開く方法に分解しました。私のビルド環境は、ディレクトリにマップされた新しいドライブ (P:) を代用する dos ウィンドウ内から作成されます。

私のディレクトリが作成された後:

  • プロンプトの現在の作業ディレクトリが "p:\common" で、common.sln と入力すると、すべてのデザイナーが問題なく動作します。これは、最初にその参照を最初に設定したときの現在の作業ディレクトリでした。
  • エクスプローラーから common.sln をダブルクリックして「複雑な」フォームを開こうとすると、次のエラーが表示されます。またはその依存関係の 1 つ。システムは、指定されたファイルを見つけることができません
  • プロンプトに "p:\" またはその他のディレクトリが CWD として含まれている場合、"p:\common\common.sln" を呼び出すと、デザイナーは複雑なフォームで中断します (上記と同じ)。

特定の問題はこれだと思います。ビジュアルスタジオが開かれたときのCWDに基づいて、私の参照が相対的に追加されました。その時点から、検索パスが cwd に基づいているため、デザイナーは「複雑な」フォームで中断します。

必要に応じて、「複雑」を定義できます。正確な状況があります。私の理想的な解決策は、私の参照がドライブのルートに基づいていることを許可することです (私の会社の開発者はすでに制約を受けています)。たとえば、代わりに

....\build\output\datafilterstypes.dll、\build\output\datafilterstypes.dll を参考にしたいです。

注意することが重要です: devenv をロードすると、作業ディレクトリに関係なく、すべてが正常にコンパイルされます。これは単なるデザイナーです。

前もって感謝します。

編集:追加するには、

4

1 に答える 1