6

この質問で見つけたソリューションを使用してプロジェクトをカスタマイズしました。

Visual Studio の ClickOnce が依存アセンブリからコンテンツ ファイルを展開しないのはなぜですか?

<ItemGroup>
<AdditionalPublishFile Include="$(OutputPath)\**\*.rpt">
  <Visible>False</Visible>
</AdditionalPublishFile>
</ItemGroup>
<Target Name="BeforePublish">
  <Touch Files="@(IntermediateAssembly)" />
  <CreateItem Include="@(AdditionalPublishFile)" AdditionalMetadata="TargetPath=%(RecursiveDir)%(Filename)%(extension);IsDataFile=false">
    <Output TaskParameter="Include" ItemName="_DeploymentManifestFiles" />
  </CreateItem>
</Target>

VS 2010 では正常に動作していましたが、VS 2012 にアップグレードするまで、追加のファイルはアプリケーション マニフェストに含まれていませんでした !! そのため、ユーザーがアプリケーションをインストールすると、言及されたファイルがアプリケーションのメイン フォルダーにありませんでした。

VS 2012 で何が変更されましたか? または多分変更はMSBuildにありますか?

編集:

元の質問について言及しましたが、基本的に依存性注入を使用していくつかのアセンブリをロードしています。つまり、プロジェクトとアセンブリの間にハード参照がないため、クリック ワンス デプロイではそれらが考慮されません。アセンブリをプロジェクトに追加するか、前述のソリューションを使用する必要があるため、目に見えず簡単な前述のソリューションを選択しました。

しかし、VS 2012 に移行した後に壊れました。

4

2 に答える 2

1

これまでに ClickOnce でこれを行っている人を見たことがなかったので、あなたの質問は困惑していました。彼は、あなたがやっていることはサポートされていないので、彼らがテストしたものではないと言った. あなたがやっていることを壊す可能性のある msbuild への複数の変更があります。

あなたがしようとしているのは、配置に含まれる二次参照に関連付けられたファイルを取得することですか? つまり、2 番目のプロジェクトをビルドすることによって作成された別のアセンブリを参照するメイン プロジェクトがあり、2 番目のアセンブリにはコンテンツ ファイルがあり、それらをプロジェクトに含める必要がありますか?

それがあなたがやろうとしていることである場合は、代わりにそれらのファイルをメイン プロジェクトにリンクすることを検討する必要があります。これを行うには、既存のアイテムをリンクとして追加し、それを 2 番目のプロジェクトのコンテンツにポイントします。その後、最初のプロジェクトをビルドするときにコンテンツが含まれます。

于 2013-03-04T07:19:07.197 に答える