11

以下を追加して、親ディレクトリ内の依存関係を検索するように csproj ファイルを設定しようとしています。

<PropertyGroup>
    <AssemblySearchPaths>
       ..\Dependencies\VS2012TestAssemblies\; $(AssemblySearchPaths)
   </AssemblySearchPaths>
</PropertyGroup>

これを、すべての Reference 宣言を持つ最初の ItemGroup の直前の最後の PropertyGroup 要素として追加しました。

残念ながら、これにより、他のすべての参照が解決されなくなります。たとえば、次のようになります。

ResolveAssemblyReferences:
         Primary reference "Microsoft.CSharp".
     9>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1578,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.CSharp". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. 
For SearchPath "..\Dependencies\VS2012TestAssemblies\".
                 Considered "..\Dependencies\VS2012TestAssemblies\Microsoft.CSharp.winmd", but it didn't exist.
                 Considered "..\Dependencies\VS2012TestAssemblies\Microsoft.CSharp.dll", but it didn't exist.
                 Considered "..\Dependencies\VS2012TestAssemblies\Microsoft.CSharp.exe", but it didn't exist.

プロジェクトの依存関係を検索する場所を msbuild に指示する簡単な方法はありますか? /p:ReferencePath を使用できることはわかっていますが、TFS チーム ビルドで参照先を指定するよりも、csproj ファイル自体にコンパイル ロジックを含めることを好みます。開発者マシン。

$(AssemblySearchPaths) をリストの最初に移動しようとしましたが、それは役に立ちませんでした。

4

2 に答える 2

19

ターゲットの「BeforeResolveReferences」内の「AssemblySearchPaths」プロパティの値を変更して、問題が解決するかどうかを確認できますか?

    <Target Name="BeforeResolveReferences">
<CreateProperty
    Value="..\Dependencies\VS2012TestAssemblies;$(AssemblySearchPaths)">
    <Output TaskParameter="Value"
        PropertyName="AssemblySearchPaths" />
</CreateProperty>
</Target>
于 2013-10-18T18:29:58.647 に答える