Visual-Studio-2008 – Visual Studio 2008 Professional Building Process

I want to accomplish two things during the build process:

>Run unit tests – I have a test project with unit tests. I want Run all these tests at build time and get notified when the build verification fails.
>Merge the web.config file-I have 3 different environments, each with configuration details specific to each. I want to generate a configuration file based on the deployment location of the web application.

I have reviewed some resources and nothing can be the best solution for this scenario. Most of my searches revolve around the target web .config part, but if I want to do this, I want to complete the unit test at the same time.

> Scott Hanselman published an article on how to make multiple copies of a configuration file, create a custom configuration, and Use a batch file to copy the web.config so that the configuration is aligned with the source. I don’t like this solution because I must have multiple versions of the same file, and it is possible that one is updated and the other does not.
>Use nAnt to see It looks very promising. From what I collected, I will use batch files as part of the build process. Using variables in xml files to replace {template} variables in file templates seems very simple to me, so I thought I tend to use MSBuild. What I care about is environment configuration, multiple developers need to put nant assemblies in the same place, so they should be checked into source control. This sounds good to me.
> I ran CruiseControl and it looks interesting at first glance, but it seems to require a lot of learning.

I realized that this is a very ambitious goal that requires some effort to correct, so I want to Make an informed decision before choosing the path. Any suggestions on the easiest and cleanest way to start and run the automated build process using tests and file configuration would be greatly appreciated, thank you.

For beginners, this is not an ambitious goal, it is a good support tool. Therefore, you are on the right track , And very good at determining your priorities.

Script

First of all, if you can help, please don’t use bat files. The bat script language is bad. It is missing Many language structures are difficult to do anything complicated. Experts can use bat to do many things, but my experience using bat scripts in the build system is that they are generally unmaintainable.

You will need to write many operations System-level script to combine all these Together, but you need a reliable programming language to implement it. Suggestions include:

> Powershell
> Python
> Bash (ie cygwin)

nAnt It is a good tool to manage the build steps. In fact, the configuration xml is checked in, branched, merged, and separated from all the rest is a huge advantage.

Make and Scons are also good tools.

p>

A few notes about these scripts. They should have clean output and good error messages. I mean error messages. You can’t spend too much time writing build scripts that provide good error messages. Seriously. Also , Please manage your operating system error codes carefully and make sure that each build command raises an error code when it fails. All CI servers will use it to mark failed builds. If it fails in step 2, but not before step 10. If the error code is triggered, debugging is very difficult.

Unit tests

Yes, they should be part of your build. Nowadays, there is a kind of programming language for every programming language under the sun. Unit testing frameworks, they all run on the command line. So choose the one that looks best and you are on the way.

Continuous integration

Once your build process reaches a point , You can sit down and command the shell and get a complete build, from Soup to Nuts (i.e. from source to sendable), then it’s time to look at what they call a continuous integration tool/server. Jenkins is a good one , Cruise Control and Buildbot are also the same. I have used them all, they are good, choose one and continue to use them. Once you start, they are not so difficult to learn, they manage a lot of the notification content you request. Remember The main thing is that they are used to execute and report command line parameters (more or less)

When building the build process, remember that it contains four basic steps:

>Get the code from the repository
>pre-build; update version number, etc.
>compile/build
>post-production; package; pull up the build product, make .iso images, etc.
>release : Move the build products to a place where people can find them (Web server in your case)

Configuration file

If you boil down configuration management to one file, take Measures. This will bring you great returns. You said you don’t want to maintain three different files. Can you determine a set of rules for converting a basic file into three files to be published? If so, then you can write a script to do the conversion for you during the packaging stage. Remember when I said “Don’t use bat files?” This is a bad thing about bat files, these types of tasks are always building the system The way to find them.

Conclusion

Finally, please remember that the main points of all of this are:

One. Make sure to submit the code and deliver the product. There are no manual steps in between. People are terrible in this area. They make mistakes, they don’t always work on weekends, such things.

Gulf provides developers with fast, comprehensive, and specific feedback that they submit The content will be valid.

Good luck!

I want to accomplish two things during the build process:

>Run a unit test – I have a test with a unit test Project. I want to run all these tests at build time and be notified when the build verification fails.
>Merge the web.config file-I have 3 different environments, each with specific to each Configuration details. I want to generate a configuration file based on the deployment location of the web application.

I have reviewed some resources and nothing can be the best solution for this scenario. Most of my searches revolve around Config part of the target, but if I want to do this, I want to complete the unit test at the same time.

> Scott Hanselman published an article on how to make multiple copies of the configuration file, created from Define the configuration, and use a batch file to copy the web.config to align the configuration with the source. I don’t like this solution because I must have multiple versions of the same file, and it is possible that one is updated and the other does not.
> Using nAnt looks promising. From what I collected, I will use batch files as part of the build process. Using variables in xml files to replace {template} variables in file templates seems very simple to me , So I think I tend to use MSBuild. What I care about is environment configuration, multiple developers need to put nant assemblies in the same place, so they should be checked into source control. This sounds good to me .
>I ran CruiseControl and it looks interesting at first glance, but it seems to require a lot of learning.

I realized that this is a very ambitious goal that requires some effort to correct, So I want to make an informed decision before choosing the path. Any suggestions on the easiest and cleanest way to start and run the automated build process with tests and file configuration would be greatly appreciated, thank you.

For beginners, this is not an ambitious goal, it is a good support tool. Therefore, you are on the right track and are very good at determining your Priorities.

Script

First of all, if you can help, please don’t use bat files. The bat script language is bad. It lacks many language structures and it is difficult to do anything Complex things. Experts can use bat to do many things, but my experience using bat scripts in the build system is that they are generally unmaintainable.

You will need to write many operating system-level scripts to integrate all of these Combined together, but you need a reliable programming language to implement it. Suggestions include:

> Powershell
> Python
> Ba sh (i.e. cygwin)

nAnt is a great tool for managing the build steps. In fact, the configuration xml is checked in, branched, merged, and separated from all the rest is a huge advantage.

< p>Make and Scons are also great tools.

A few notes about these scripts. They should have clean output and good error messages. I mean error messages. You can’t spend too much Time to write build scripts that provide good error messages. Seriously. Also, carefully manage your operating system error codes and make sure that every build command throws an error code when it fails. All CI servers will use it to flag failed builds. If it fails in step 2, but no error code is raised before step 10, debugging is very difficult.

Unit tests

Yes, they should be part of your build. Now , There is a unit testing framework for each programming language under the sun, and they all run on the command line. Therefore, choose the one that looks best and you are on the way.

Continuous integration

p>

Once your build process reaches a point, you can sit down and command the shell and get a complete build, from Soup to Nuts (i.e. from source to sendable), then it’s time to see what they call Continuous integration tools/servers. Jenkins is a good one, as are Cruise Control and Buildbot. I have used them all, they are good, choose one and continue to use them. Once you start, they are not so difficult to learn , They manage a lot of the notification content you request. The main thing to remember is that they are all used to execute and report command line parameters (more or less)

When building the build process, remember It contains four basic steps:

>Get the code from the repository
>pre-build; update the version number, etc.
>compile/build
>post-production; pack; pull up Build products, make .iso images, etc.
>Publish: Move build products to a location where people can find them (Web server in your case)

Profile

If you boil down configuration management to one file, please take measures. This will bring you a generous return. You said you don’t want to maintain three different files. Can you be sure that one set will convert one basic file into three The rules of the file to be published? If so, then you can write a script to do the conversion for you during the packaging stage. Remember when I said “Don’t use bat files?” This is a bad thing about bat files, these types of tasks are always building the system The way to find them.

Conclusion

Finally, please remember that the main points of all of this are:

One. Make sure to submit the code and deliver the product. There are no manual steps in between. People are terrible in this area. They make mistakes, they don’t always work on weekends, such things.

B. Provide developers with fast, comprehensive, and specific feedback that they submit The content will be valid.

Good luck!

Leave a Comment

Your email address will not be published.