スコーピングに関するwiki 記事を完全には理解していない可能性があります。
はじめに:
40 以上のプロジェクトを持つソリューション (ABC.sln) があり、パッケージ管理のために OpenWrap を実装しようとしています。そこで、ソリューションのルート フォルダーで次のことを行いました。
o init-wrap -all
これでうまくいきました。ソリューションのルート フォルダーに SLN.wrapdesc というファイルができました。サブフォルダー内のすべての .csproj ファイルには、OpenWrap ターゲット行が含まれています。
次に、次の方法でソリューションにさまざまなラップを追加しました。
o add-wrap -Name xxx
繰り返しますが、これはうまくいきました。ラップフォルダーにいくつかのラップがあり、プロジェクトから古い参照を削除してもビルドは壊れません。
問題:
ラップのすべてのコンテンツが、それを必要としないプロジェクトであっても、すべてのプロジェクトに送られます。どのラップがどこに行くのかを指定できるようにしたいと思います。たとえば、AjaxControlToolkit は Web プロジェクトにのみ入ります。
試し
たこと まず、AjaxControlToolkit を wrapdesc から削除しました。
o remove-wrap AjaxControlToolkit
これにより、ビルドが壊れます (予想どおり)。次に、次のことを
試しました。1.スコープを使用してラップを追加してみます。
o add-wrap -Name AjaxControlToolkit -scope webproject
これにより、ラップがラップフォルダーに戻されます。その後、プロジェクト ファイルに追加<OpenWrap-Scope>customscope</OpenWrap-Scope>
しましたが、ビルドはまだ壊れています。
2. ABC.webproject.wrapdesc というファイルをルート フォルダに手動で追加してみてください。これにより、ソリューションを開こうとすると次のエラーが発生します。
The "exists" function only accepts a scalar value, but its argument "@(_WrapFile->'%(FullPath)')" evaluates to "D:\Projects\ABC.webproject.wrapdesc;D:\Projects\ABC.wrapdesc" which is not a scalar value.
2つのwrapdescファイルが気に入らないと思います。ウィキには「...デフォルトの記述子と一緒に2番目の記述子を追加できます...」と書かれているため、これは奇妙です。
だから今私は立ち往生しています。誰にもアイデアはありますか?