Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4325474
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 21, 20262026-05-21T09:16:18+00:00 2026-05-21T09:16:18+00:00

We have quite some room for improvement in our application lifecycle management. We don’t

  • 0

We have quite some room for improvement in our application lifecycle management. We don’t use TFS or any other suite (shame on us, I know).

Anyway, one of the aspects we currently ponder about is code identity.
In other words: Auditors ask us how we ensure that the software tested and accepted by the departments is exactly and with no alternations the assembly we deploy for productive use and not some tinkered-with version. “That’s easy”, we say, “it isn’t!”. Because some configuration variables are set between approval and release, the ClickOnce hashes differ and thus does the whole thing.

That’s the story so far, but we want (and have) to get better at what we do, so there’s no way around creating our assemblies stateless and oblivious to their environment. But then we will have to set the environment at runtime, our options here are:

  1. Using Application settings and excluding the application configuration from the ClickOnce hash. This sucks because we can’t sign the ClickOnce Manifest that way, so users will always be prompted a “watch out, you don’t know this guy” kind of message.

  2. Passing Query-String parameters to the application file and using those to distinguish between test and productive environment. I don’t like this because it’s too open and enables any user to control the important bits (like dbhost or whatever).

Passing in something like “is_test=1” means there’s a lot of inline-switching going on, and that on the other hand could mean that the assembly behaves different in production than in test, which brings us back to the start, although we’ve ensured Assembly-Identity on the way.

I think all that is rather unsatisfying and there must be a better way to do it. How can this be done by little means (meaning without TFS or similar monstrosities)?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-21T09:16:18+00:00Added an answer on May 21, 2026 at 9:16 am

    I just messed around with the ApplicationDeployment class a little. I think what I have now is pretty close to what I was looking for.

        private static void GetDeploymentEnvironment()
        {
            if (ApplicationDeployment.IsNetworkDeployed)
            {
                ApplicationDeployment dep = ApplicationDeployment.CurrentDeployment;
                FileInfo f = new FileInfo(dep.UpdateLocation.AbsolutePath + ".env");
                if (f.Exists)
                {
                    /// read file content and apply settings
                }
            }
        }
    

    This enables me to put a file in the deployment folder (where the .application-file resides) that I can use to override settings. If there is no such file, well…nothing gets overridden. Whatever I do with the content of this file, the Assembly Identity is preserved.

    EDIT : Just a hint, as you see this is useful only for applications deployed as Online Only. You cannot start the same ClickOnce .application file from different locations in the Available Offline scenario.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

In my application I have quite some void-pointers (this is because of historical reasons,
I want to use the current version of bundler (there have been quite some
Have spend quite some time to learn Sencha touch, just like an evaluation about
I have been struggling with this for quite some time having been accustomed to
Quite some time i`ve learnt MVC. I have seen various techniques to post data
I have a flash page which takes quite some time to load, but I
I have been developing with objective C and the Cocoa framework for quite some
I have been developing a script on my linux box for quite some time,
Hell All, So I have been facing this behavior for quite some time and
I have to run some mysql update queries and they take quite a long

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.