2

クリック ワンス .net c# アプリケーションの tfs ビルドを自動化しようとしています。次の投稿に従ってデフォルトの xaml を編集しました : http://blog.dontpaniclabs.com/post/2011/04/29/ClickOnce-Publish-and-Deploy-from-Team-Foundation-Server-2010.aspx参照プロジェクトを持たない単純なプロジェクトではうまく機能しますが、ライブラリ プロジェクトを参照するクリック ワンス プロジェクトでは正しく機能しません。ビルドは成功しますが、実際には次の 2 つの警告が表示されます。

  1. アイテム "library.dll" のパブリッシュ プロパティを適用できません。
  2. 2 つ以上のアセンブリが同じ ID 'clickonceprojectname.Client、Version=1.0.1.17、Culture=neutral、PublicKeyToken=4F6F13E2414E9925、ProcessorArchitecture=msil' を持っています。

また、library.dll がアプリケーション ファイル フォルダーに含まれていないため、クリック ワンス インストールが失敗します。私には、何らかの理由で msbuild が依存プロジェクトとクリック ワンス プロジェクトを公開しようとしているように見えます。これを修正する方法はありますか?

私は多くの投稿を読み、プロジェクト ファイルで copy local = true であることを確認し、プロジェクト プロパティの [発行] タブですべてのアプリケーション ファイルをリセットするなど、すでに多くの解決策を試しました。誰かがそれで私を助けることができますか? 私はこれに数日間苦労しています

4

1 に答える 1

0

多くの調査の結果、この問題の原因は、クリック ワンスの msbuild パラメーターに assemblyName パラメーターが含まれていることにあることがわかりました。そのパラメーターを削除すると、ビルドは依存する dll に対しても正常に機能します。プロジェクトごとにqa、ベータ、および製品バージョンがあり、同じコンピューターでそれらを並べて実行できる必要があるため、ビルドごとに異なるアセンブリ名を使用する必要があります。msbuild パラメーターでアセンブリ名を指定しない場合は、プロジェクト ファイルから取得されます。これに対して私が行った回避策は、発行タイプに従って assemblyName でプロジェクト ファイルを更新するカスタム アクティビティを作成することでした。誰かが望むなら、カスタム アクティビティのコードを共有できます。そのため、公開前にプロジェクト ファイルのアセンブリ名を変更すると、うまく機能します!!!

于 2014-03-19T19:50:49.627 に答える