locked
Error: Setup has detected that the file has changed since it was initially published RRS feed

  • Question

  • I'm working on Visual Studio 2017 current latest update. My project only has .NET 4.6 as its pre-requisite. I had released my program for a long time without trouble, but recently a customer using Windows 7 SP 1 failed to install. I'm not sure what the problem is, but I hope someone can help

    The following properties have been set:
    Property: [AdminUser] = true {boolean}
    Property: [InstallMode] = HomeSite {string}
    Property: [NTProductType] = 1 {int}
    Property: [ProcessorArchitecture] = Intel {string}
    Property: [VersionNT] = 6.1.1 {version}
    Running checks for package 'Microsoft .NET Framework 4.6 (x86 および x64)', phase BuildList
    Reading value 'Release' of registry key 'HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full'
    Unable to read registry value
    Not setting value for property 'DotNet46Full_Release'
    Reading value 'v4' of registry key 'HKLM\SOFTWARE\Microsoft\NET Framework Setup\OS Integration'
    Unable to read registry value
    Not setting value for property 'DotNet46Full_OSIntegrated'
    Reading value 'Release' of registry key 'HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full\1041'
    Unable to read registry value
    Not setting value for property 'DotNet46FullLangPack_Release'
    Reading value 'LCID' of registry key 'HKLM\SYSTEM\CurrentControlSet\Control\MUI\UILanguages\ja-JP'
    Read integer value 1041
    Setting value '1041 {int}' for property 'DotNet46FullLangPack_OS_LCID'
    Reading value 'v4' of registry key 'HKLM\SOFTWARE\Microsoft\NET Framework Setup\OS Integration'
    Unable to read registry value
    Not setting value for property 'DotNet46FullLangPack_OSIntegrated'
    The following properties have been set for package 'Microsoft .NET Framework 4.6 (x86 および x64)':
    Property: [DotNet46FullLangPack_OS_LCID] = 1041 {int}
    Running checks for command 'DotNetFX46\NDP46-KB3045557-x86-x64-AllOS-ENU.exe'
    Result of running operator 'ValueEqualTo' on property 'InstallMode' and value 'HomeSite': true
    Result of checks for command 'DotNetFX46\NDP46-KB3045557-x86-x64-AllOS-ENU.exe' is 'Bypass'
    Running checks for command 'DotNetFX46\NDP46-KB3045557-x86-x64-AllOS-ENU.exe'
    Result of running operator 'ValueEqualTo' on property 'InstallMode' and value 'HomeSite': true
    Result of checks for command 'DotNetFX46\NDP46-KB3045557-x86-x64-AllOS-ENU.exe' is 'Bypass'
    Running checks for command 'DotNetFX46\NDP46-KB3045560-Web.exe'
    Result of running operator 'ValueNotEqualTo' on property 'InstallMode' and value 'HomeSite': false
    Skipping ByPassIf because Property 'DotNet46Full_Release' was not defined
    Skipping ByPassIf because Property 'DotNet46Full_OSIntegrated' was not defined
    Result of running operator 'ValueEqualTo' on property 'AdminUser' and value 'false': false
    Result of running operator 'VersionLessThan' on property 'VersionNT' and value '6.0.0': false
    Result of running operator 'ValueEqualTo' on property 'ProcessorArchitecture' and value 'IA64': false
    Result of checks for command 'DotNetFX46\NDP46-KB3045560-Web.exe' is 'Install'
    Running checks for command 'DotNetFX46\NDP46-KB3045560-Web.exe'
    Result of running operator 'ValueNotEqualTo' on property 'InstallMode' and value 'HomeSite': false
    Skipping ByPassIf because Property 'DotNet46Full_Release' was not defined
    Skipping ByPassIf because Property 'DotNet46Full_OSIntegrated' was not defined
    Result of running operator 'ValueNotExists' on property 'DotNet46Full_OSIntegrated': true
    Result of checks for command 'DotNetFX46\NDP46-KB3045560-Web.exe' is 'Bypass'
    Running checks for command 'DotNetFX46\NDP46-KB3045557-x86-x64-AllOS-JPN.exe'
    Skipping ByPassIf because Property 'DotNet46FullLangPack_Release' was not defined
    Skipping ByPassIf because Property 'DotNet46FullLangPack_OSIntegrated' was not defined
    Result of running operator 'ValueEqualTo' on property 'AdminUser' and value 'false': false
    Result of running operator 'VersionLessThan' on property 'VersionNT' and value '6.0.0': false
    Result of running operator 'ValueEqualTo' on property 'ProcessorArchitecture' and value 'IA64': false
    Result of checks for command 'DotNetFX46\NDP46-KB3045557-x86-x64-AllOS-JPN.exe' is 'Install'
    Running checks for command 'DotNetFX46\NDP46-KB3045557-x86-x64-AllOS-JPN.exe'
    Skipping ByPassIf because Property 'DotNet46FullLangPack_Release' was not defined
    Skipping ByPassIf because Property 'DotNet46Full_OSIntegrated' was not defined
    Result of running operator 'ValueNotExists' on property 'DotNet46Full_OSIntegrated': true
    Result of checks for command 'DotNetFX46\NDP46-KB3045557-x86-x64-AllOS-JPN.exe' is 'Bypass'
    'Microsoft .NET Framework 4.6 (x86 および x64)' RunCheck result: Install Needed
    EULA for components 'Microsoft .NET Framework 4.6 (x86 および x64)' was accepted.
    Copying files to temporary directory "C:\Users\KAKE-I~1\AppData\Local\Temp\VSD5668.tmp\"
    Downloading files to "C:\Users\KAKE-I~1\AppData\Local\Temp\VSD5668.tmp\"
    (2018/08/21 14:09:47) Downloading 'DotNetFX46\NDP46-KB3045557-x86-x64-AllOS-JPN.exe' from 'http://go.microsoft.com/fwlink/?linkid=528223&clcid=0x411' to 'C:\Users\KAKE-I~1\AppData\Local\Temp\VSD5668.tmp\'
    Download completed at 2018/08/21 14:09:48
    Verifying file integrity of C:\Users\KAKE-I~1\AppData\Local\Temp\VSD5668.tmp\DotNetFX46\NDP46-KB3045557-x86-x64-AllOS-JPN.exe
    WinVerifyTrust returned 0
    File trusted
    Error: ファイル 'C:\Users\KAKE-I~1\AppData\Local\Temp\VSD5668.tmp\DotNetFX46\NDP46-KB3045557-x86-x64-AllOS-JPN.exe' は最初に発行されて以来変更されています
    。(2018/08/21 14:09:51) Downloading 'DotNetFX46\NDP46-KB3045557-x86-x64-AllOS-JPN.exe' from 'http://go.microsoft.com/fwlink/?linkid=528223&clcid=0x411' to 'C:\Users\KAKE-I~1\AppData\Local\Temp\VSD5668.tmp\'
    Download completed at 2018/08/21 14:09:51
    Verifying file integrity of C:\Users\KAKE-I~1\AppData\Local\Temp\VSD5668.tmp\DotNetFX46\NDP46-KB3045557-x86-x64-AllOS-JPN.exe
    WinVerifyTrust returned 0
    

    (Error: ファイル 'C:\Users\KAKE-I~1\AppData\Local\Temp\VSD5668.tmp\DotNetFX46\NDP46-KB3045557-x86-x64-AllOS-JPN.exe' は最初に発行されて以来変更されています

    is the same as

     Error: Setup has detected FILENAME has changed since it was initially published)

    I also checked out a similar problem on this site,
    https://social.msdn.microsoft.com/Forums/windows/en-US/6fb9eb84-850d-4acf-b43f-ed28a68af624/error-setup-has-detected-that-the-file-has-changed-since-it-was-initially-published?forum=winformssetup
    , but the information did not seem to help my situation.

    Wednesday, August 22, 2018 9:50 AM

All replies

  • Hi,

    Try the following method.

    https://stackoverflow.com/questions/18463574/setup-has-detected-that-the-file-has-changed-since-it-was-initially-published

    Best Regards,

    Alex


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Thursday, August 23, 2018 6:05 AM
  • Thank you for the swift response,

    I have attempted to follow the stack overflow solution, but have run into a few problems

    • The folder location is different as I am using VS 2017.
      I believe it is now
      C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX46
      in my case for .NET 4.6 so no problem
    • The product.XML has no url address.
      There are urls under DotNetFX46\LANGUAGE_FOLDER\Product.xml
      since I want japanese installer, I put one under DotNetFX46\ and DotNetFX46\ja
    • Produce Setup.exe file without publishing
      Since I am working with ClickOnce, the only way (that I know of) to produce a setup.exe file, is to publish.
      Is it possible to create the setup.exe file without releasing?

    I also received additional information regarding the user.
    They had previously installed 「NDP46-KB3045557-x86-x64-AllOS-ENU.exe」manually. Installing 「NDP46-KB3045557-x86-x64-AllOS-JPN.exe」manually from the error message, solved the problem. Does this mean that the prerequisites for the file were wrong? If needed I can attach the Package.xml files 

    I do wish to find the solution in the installer rather than have users manually install the file. Once again thank you for the response.

    Thursday, August 23, 2018 7:06 AM
  • I believe I have found the solution

    https://www.itlab51.com/?p=10475

    It is practically the same as your solution and the steps I followed to try and replicate it.
    Put the english version, ENU.exe, under DotNetFX46\ and the language specific one under its' folder (eg. JPN.exe under DotNetFX46\ja\)
    However, this leaves the question if it is possible to create the files without publishing.

    Again, thanks for the response!
    • Proposed as answer by Stanly Fan Friday, August 24, 2018 8:32 AM
    Thursday, August 23, 2018 7:16 AM
  • Hi,

    I am glad you have got your solution, we appreciated you shared us your solution and mark it as an answer.

    Best Regards,

    Alex


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Friday, August 24, 2018 6:32 AM