2

Visual Studioで、ソリューションの既存のプロジェクトへの参照を.csprojファイルに追加すると、次のようになります。

<ProjectReference Include="..\TestProject2\TestProject2.csproj">
  <Project>{15EC8369-B0C5-4F71-A366-19042F450A2D}</Project>
  <Name>TestProject2</Name>
</ProjectReference>

EnvDTEを介してアセンブリDLLへの参照を追加する場合:

var p = _project as VsProject;
p.References.Add(<path to assembly DLL>);

それはこのように終わります:

<Reference Include="TestProject2.csproj">
  <HintPath>..\TestProject2\bin\Debug\TestProject2.csproj.dll</HintPath>
</Reference>

リリースビルドに切り替えてもデバッグアセンブリを参照するため、これはそれほど優れていません。もう1つの問題は、参照として追加する前に、参照されたアセンブリをビルドする必要があることです。Visual Studio UIを使用して、ビルドされていないプロジェクトへの参照を追加できます。

EnvDTE APIを介してプロジェクト参照を追加することは可能ですか?

.csprojファイルをXMLドキュメントとして操作し、やりたいことが何でもできることはわかっていますが、EnvDTEのパスから始めたので、それを使い続けたいと思います。

4

2 に答える 2

6

Referencesインターフェースには、プロジェクト間の参照を処理するAddProjectメソッドがあるようです。

于 2012-07-17T20:27:29.347 に答える
0

私にとってうまくいったのは、次のように参照を作成することです。

<Reference
  Include="MyDll"
  Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
  <HintPath>..\..\somePath\Debug\myDll.dll</HintPath>
</Reference>
<Reference
  Include="MyDll"
  Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
  <HintPath>..\..\somePath\Release\myDll.dll</HintPath>
</Reference>

このように、リリースビルドはリリース依存関係を参照し、デバッグビルドはデバッグを参照します。もちろん、必要に応じてx86/x64も処理できます。これは32ビットアプリ用でした。

于 2013-02-06T03:33:18.163 に答える