私の要件は、アプリケーションマニフェストファイルのProductNameを変更することです。ここで説明した解決策を実行しましたが、私にとっては、製品名は変更されていません。GenerateApplicationManifest
ログでは、タスクが実行されていないことがわかります。ログには次のように書かれています。
Skipping target "GenerateApplicationManifest" because all output files are up-to-date with respect to the input files.
しかし、このタスクを実行して、製品名を変更したいと思います。これがコードです。
<DeployEXE>The application .exe file</DeployEXE>
<DeployManifest>The .exe.manifest file</DeployManifest>
<AppManifest>The .application file</AppManifest>
Line 1: <Exec Command="$(Msbuild) $(ClientAppProject) /t:Clean;Publish /p:BootstrapperEnabled=true;UpdateRequired=true;MinimumRequiredVersion=$(Version);UpdateEnabled=true;UpdateMode=Foreground;UpdateInterval=7;UpdateIntervalUnits=Days;UpdatePeriodically=false;PublishDir=$(PublishDir);ApplicationVersion=$(Version);PublisherName="$(PublisherName)";ProductName="$(ClickOnceAppTitle)";PublishUrl=$(ClickOnceUrl);GenerateManifests=true;Install=true;Configuration=Release;Platform=AnyCPU"/>
Line 2: <Exec Command="$(SN) -R $(DeployEXE) $(SNKFile)"/>
Line 3: <Exec Command="$(MAGE) -UPDATE $(DeployManifest) -CertFile $(CertFile) -Password $(Password) -pub "$(PublisherName)" -UseManifestForTrust t" />
Line 4: <Exec Command="$(MAGE) -UPDATE $(AppManifest) -AppManifest $(DeployManifest) -CertFile $(CertFile) -Password $(Password) -pub "$(PublisherName)" -UseManifestForTrust t"/>
Line 5: <GenerateApplicationManifest
AssemblyName="$(EXEName).exe"
Product="$(ClickOnceAppTitle)"
EntryPoint="$(EXEName).exe"
OutputManifest="$(EXEName).exe.manifest">
<Output
ItemName="ApplicationManifest"
TaskParameter="OutputManifest"/>
</GenerateApplicationManifest>
後Line 1
、.applicationファイルと.exe.manifetファイルに設定されている正しい発行元と製品名を確認できます(例:PublisherNameはに設定されMyCompany
、ProductNameはに設定されていMy Company Software
ます)。実行後Line 4
、パブリッシャー名は正しいままですが、製品名はアセンブリ名に置き換えられます(例:ProductNameはに変更されますMy.Company.Software
)。これを修正するために、を追加しましたLine 5
。これは、理想的にはProductNameを修正する必要がありますが、実際には発生しません。
ここで何が問題になる可能性がありますか?このタスクがMSBUILDによって無視されるのはなぜですか?