Problem causing failure to install ClickOnce project after adding a reference to another project:
ERROR DETAILSERROR DETAILS Following errors were detected during this operation. * [7/17/2017 12:01:25 PM] System.Deployment.Application.InvalidDeploymentException (RefDefValidation) – Reference in the manifest does not match the identity of the downloaded assembly TraceabilityService.exe.
This solved the problem for me. Relevant snippets follow:
The way to solve this was enabling ClickOnce Security Settings in all referenced projects as Ian explained here.
I believe this is the proper way to fix it when making a reference to another project under the same solution.
EDIT: Here is the relevant block from the link (emphasis mine):
For me, the way this was resolved was to ensure that all the Projects under the Solution which exposed the “Security Tab” in their “Project Properties” had the Option “Enable ClickOnce Security Settings” Ticked with the Option “This is a full trust application” Selected. This has to do with creating the Manifest correctly and the application will not install if these options are not set on all the Projects within the Solution that require it.
— more info from another resource —
ClickOnce Crystal Reports Redistributable Upgrade Issue
See more: .NETCrystalReportsClickOnce
I had an application that I created using Visual Studio 2010 which had a prerequisite of the 32 bit version of SAP Crystal Reports Runtime Engine for .NET Framework 4.0. (Appears to be version 13.0.2)
Now for the same set of customers I want to create an application using Visual Studio 2012 and have a prerequisite of the 32 bit version of SAP Crystal Reports Runtime Engine for .Net Framework. (Appears to be version 13.0.11)
My problem is when I attempt to install the the new program using ClickOnce, it fails if the previous version of the Crystal Reports redistributable is installed.
The error message I get is:
Hide Copy Code
Component Crystal Reports for .NET (Force 32bit) V3.0.11 has failed to install with the following error message:<br />
“Fatal error during installation. ”
And the install log file has a bunch of text, but ends with these last statements:
Hide Copy Code
<Removed some text><br />
Installing using command ‘C:\Windows\SysWOW64\msiexec.exe’ and parameters ‘ -I “C:\Users\katies\AppData\Local\Temp\VSD2952.tmp\CrystalReports_Force32Bit_13_11\CRRuntime_32bit_13_0_11.msi” -q ‘<br />
Will attempt to elevate process.<br />
Process exited with code 1603<br />
Status of package ‘Crystal Reports for .NET (Force 32bit) V3.0.11’ after install is ‘InstallFailed’
Note: The bootstrap package is one I had to manually create so that it would always install the 32 bit version of Crystal because my program targets 32 bit.
If I manually uninstall the previous Crystal Reports, the install works fine. Is there someway to get this to work automatically instead of having to force my users to manually uninstall before installing the new version? There must be a way to upgrade the version without these vague errors and manually uninstalling hassles. Does anyone have an idea for me to try?
—– Update —–
I posted this question both here and on SAP’s forums. I was told that Crystal 13.0.11 was a bad version, it’s been removed from their download site. I waited until the next version came out but I’m still have trouble. I also tested using the default bootstraps for the different versions of Crystal as prereqs on test programs. I still got the error so that suggests that the bootstrap that I made is not the problem. Perhaps this is a Microsoft ClickOnce bug? Or perhaps a Crystal issue when using ClickOnce? I still have not found a work around or explanation for my issue. Any advice would be appreciated.
J.R. Berard 14-Sep-15 17:18pm
I figured it out; there are a couple things that need to be done. Hope this helps others. Thanks to the references!!!
Reference #1: http://stackoverflow.com/questions/18463574/setup-has-detected-that-the-file-has-changed-since-it-was-initially-published
Reference #2: http://scn.sap.com/thread/3761314
Changes to make (modified for clarity):
1. In the following folder, you will find a product.xml file.
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\Crystal Reports 4.0\ or C:\Program Files (x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages\Crystal Reports for .NET Framework 4.0\
2. Open the product.xml file in Notepad (or any text editor).
3. Under the PackageFiles section, you will find 2 HomeSite URLs that point to the 2 deployment packages. Copy each URL into your web browser and manually download the packages.
3. Once the packages are downloaded, copy them to the same folder as the product.xml file (see #1 above).
4. Under Commands section of the product.xml, find the command element and change the Arguments attribute to ‘/quiet /passive UPGRADE=1’
5. Save the product.xml, recompile and perform the deployment. CR should be upgraded as expected.
I’m really hoping not to need this, but…
I think this is a 32-bit vs 64-bit issue. The 64-bit distro of Crystal Reports is part of our corporate software store, but the 32-bit is not listed. I’m hoping the 32-bit distro of that client, with removing Crystal Reports as a dependent package in Project / Application configuration, removes the requirement of Crystal during install. That would allow a clean final update across all platforms.
My Advice for .NET Application Architecture and Design