Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Thanks for nothing Visual Studio

Thanks for nothing Visual Studio

Scheduled Pinned Locked Moved The Lounge
csharpvisual-studioquestion
41 Posts 22 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Chris Maunder

    "Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed." Either they aren't actually listed or they are buried so deep as to be invisible. To the devs who wrote this pointlessness: If you can see there's a conflict why not list it then and there? What about: "Found conflicts between different versions of the same dependent assembly "Assembly.dll (1.2.3.4)" and "Assembly.dll (1.2.3.5)" that could not be resolved." There - was that hard?

    cheers Chris Maunder

    Richard DeemingR Offline
    Richard DeemingR Offline
    Richard Deeming
    wrote on last edited by
    #14

    Tools ⇒ Options ⇒ Projects and Solutions ⇒ Build and Run Set both "MSBuild verbosity" options to "Diagnostic". (I seem to recall that the one that sounded obviously right had no effect, so try both. Oh, and "Detailed" doesn't work; it has to be "Diagnostic".) Then trawl through 500+ pages of output to see if you can find some hint as to what the problem might be. Then make some changes that might fix the problem, until the next time you start Visual Studio, when the same error will come back again. Finally, give up, go and grab a beer, and learn to suppress your OCD and put up with this warning appearing in the build output on every build until the project is obsolete. :-D


    "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

    "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

    1 Reply Last reply
    0
    • C Chris Maunder

      "Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed." Either they aren't actually listed or they are buried so deep as to be invisible. To the devs who wrote this pointlessness: If you can see there's a conflict why not list it then and there? What about: "Found conflicts between different versions of the same dependent assembly "Assembly.dll (1.2.3.4)" and "Assembly.dll (1.2.3.5)" that could not be resolved." There - was that hard?

      cheers Chris Maunder

      P Offline
      P Offline
      Pete OHanlon
      wrote on last edited by
      #15

      I'm pretty darn sure that looks like MSBuild output as Visual Studio doesn't actually do the build. It's important to blame the right team ;)

      1 Reply Last reply
      0
      • G Gary Wheeler

        Marc Clifton wrote:

        create a whole new solution and add references/packages one at a time, and figure out which package was unhappy

        I've done that before, and the new solution never exhibited the error. I concluded it was one of those order-things-were-added sorts of buggery.

        Software Zen: delete this;

        M Offline
        M Offline
        Marc Clifton
        wrote on last edited by
        #16

        Gary Wheeler wrote:

        and the new solution never exhibited the error.

        Yup. I ended up replacing the entire directory (sln, csproj's, etc). Marc

        Latest Article - Class-less Coding - Minimalist C# and Why F# and Function Programming Has Some Advantages Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

        G 1 Reply Last reply
        0
        • R realJSOP

          I want to echo this sentiment regarding SQL server error messages. "Syntax error near ')'" sucks bigger'n a bucket of ticks.

          ".45 ACP - because shooting twice is just silly" - JSOP, 2010
          -----
          You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
          -----
          When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013

          Richard DeemingR Offline
          Richard DeemingR Offline
          Richard Deeming
          wrote on last edited by
          #17

          How about "String or binary data would be truncated"? Sure, SQL knows which column is causing the problem. But can it be bothered to tell you, so you can fix your query? :doh: Please fix the "String or binary data would be truncated" message to give the column name | Microsoft Connect[^] (Active since 2008; 1524 up-votes; last update from MS was August 2016: "It's still too early to know when such a fix would reach a publicly visible release.")


          "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

          "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

          R P 2 Replies Last reply
          0
          • M Marc Clifton

            Gary Wheeler wrote:

            and the new solution never exhibited the error.

            Yup. I ended up replacing the entire directory (sln, csproj's, etc). Marc

            Latest Article - Class-less Coding - Minimalist C# and Why F# and Function Programming Has Some Advantages Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

            G Offline
            G Offline
            Gary Wheeler
            wrote on last edited by
            #18

            It could be worse - you could be using Qt Creator. When I was using it on an after-hours job a couple of years ago, I got in the habit of saving a backup copy of their version of project/solution files before I did anything that changed them. Opening a corrupted file would cause Creator to crash, which was the only indicator that the file had been corrupted. Very frustrating, especially when you're adding 50+ source files to a project.

            Software Zen: delete this;

            1 Reply Last reply
            0
            • M Marc Clifton

              Chris Maunder wrote:

              These reference conflicts are listed in the build log when log verbosity is set to detailed."

              Which is like finding a needle in a haystack. I had that problem with some code at work, related to NuGet packages X| and the only solution was to create a whole new solution and add references/packages one at a time, and figure out which package was unhappy. Marc

              Latest Article - Class-less Coding - Minimalist C# and Why F# and Function Programming Has Some Advantages Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

              R Offline
              R Offline
              raddevus
              wrote on last edited by
              #19

              A very cryptic tool, as I said up there ==> The Lounge[^] But Fusion Log Viewer is relatively easy to run (from a Visual Studio Command prompt) and will tell you immediately upon running your exe the problem it sees:

              Microsoft docs says

              The tool (fuslogvw.exe) displays the following details about the selected bind failure: * The specific reason the bind failed, such as "file not found" or "version mismatch". * Information about the application that initiated the bind, including its name, the application's root directory (AppBase), and a description of the private search path, if there is one. * The identity of the assembly the tool is looking for. * A description of any Application, Publisher, or Administrator version policies that have been applied. * Whether the assembly was found in the global assembly cache. * A list of all probing URLs.

              EDIT Usage 1. Start fuslogvw 2. configure it for the type of output you want (screen, log file, etc) 3. Start your failing app. 4. examine results

              M 1 Reply Last reply
              0
              • R raddevus

                A very cryptic tool, as I said up there ==> The Lounge[^] But Fusion Log Viewer is relatively easy to run (from a Visual Studio Command prompt) and will tell you immediately upon running your exe the problem it sees:

                Microsoft docs says

                The tool (fuslogvw.exe) displays the following details about the selected bind failure: * The specific reason the bind failed, such as "file not found" or "version mismatch". * Information about the application that initiated the bind, including its name, the application's root directory (AppBase), and a description of the private search path, if there is one. * The identity of the assembly the tool is looking for. * A description of any Application, Publisher, or Administrator version policies that have been applied. * Whether the assembly was found in the global assembly cache. * A list of all probing URLs.

                EDIT Usage 1. Start fuslogvw 2. configure it for the type of output you want (screen, log file, etc) 3. Start your failing app. 4. examine results

                M Offline
                M Offline
                Marc Clifton
                wrote on last edited by
                #20

                raddevus wrote:

                A very cryptic tool, as I said up there

                I read that. :) Now the only problem is, how the heck am I going to remember this gem of wisdom as associate with the problem, and know where I put your wisdom for future reference, where the future could be a long time from now, in a galaxy far far away. ;) Marc

                Latest Article - Class-less Coding - Minimalist C# and Why F# and Function Programming Has Some Advantages Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

                R 1 Reply Last reply
                0
                • M Marc Clifton

                  raddevus wrote:

                  A very cryptic tool, as I said up there

                  I read that. :) Now the only problem is, how the heck am I going to remember this gem of wisdom as associate with the problem, and know where I put your wisdom for future reference, where the future could be a long time from now, in a galaxy far far away. ;) Marc

                  Latest Article - Class-less Coding - Minimalist C# and Why F# and Function Programming Has Some Advantages Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

                  R Offline
                  R Offline
                  raddevus
                  wrote on last edited by
                  #21

                  Marc Clifton wrote:

                  where the future could be a long time from now, in a galaxy far far away

                  :thumbsup: That really is a great summary of the situation. File it under, "things I need to remember, when I've fallen down a deep dark crevasse and cannot seem to remember". :) You have to use this thing about once every 1 or 2 years. :rolleyes:

                  1 Reply Last reply
                  0
                  • Richard DeemingR Richard Deeming

                    How about "String or binary data would be truncated"? Sure, SQL knows which column is causing the problem. But can it be bothered to tell you, so you can fix your query? :doh: Please fix the "String or binary data would be truncated" message to give the column name | Microsoft Connect[^] (Active since 2008; 1524 up-votes; last update from MS was August 2016: "It's still too early to know when such a fix would reach a publicly visible release.")


                    "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                    R Offline
                    R Offline
                    realJSOP
                    wrote on last edited by
                    #22

                    That's because the company they bought sql server from is out of business and the devs that originally coded it are dead, and there's no comments in the code because the original devs didn't need comments.

                    ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                    -----
                    You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                    -----
                    When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013

                    1 Reply Last reply
                    0
                    • Richard DeemingR Richard Deeming

                      How about "String or binary data would be truncated"? Sure, SQL knows which column is causing the problem. But can it be bothered to tell you, so you can fix your query? :doh: Please fix the "String or binary data would be truncated" message to give the column name | Microsoft Connect[^] (Active since 2008; 1524 up-votes; last update from MS was August 2016: "It's still too early to know when such a fix would reach a publicly visible release.")


                      "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                      P Offline
                      P Offline
                      PIEBALDconsult
                      wrote on last edited by
                      #23

                      Come over to the SSIS side. :cool:

                      OnError 12:41:57 Data Flow Task:Error: The "ADO NET Source" failed because truncation occurred, and the truncation row disposition on "ADO NET Source.Outputs[ADO NET Source Output].Columns[VM Farm Name]" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.

                      1 Reply Last reply
                      0
                      • R raddevus

                        What you need here is the Fusion Log Viewer fuslogvw.exe in your .NET Tools folder, of course.:confused: Isn't it obvious? No. In the past, found somewhere around --> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin Fuslogvw.exe (Assembly Binding Log Viewer) | Microsoft Docs[^] This tool allows you to turn on some logging that will tell you which .NET dependency (with version and details) the thing is attempting to bind to. It's all very cryptic, beginning with the name. Why Fusion Log Viewer? The original name of the internal Microsoft Project which would become .NET -- and they never renamed the thing. X|

                        C Offline
                        C Offline
                        Chris Maunder
                        wrote on last edited by
                        #24

                        Yes - been using it. Would be great if it actually (a) gave some insight and not just a 200 line list of events, and (b) actually worked consistently (worked once then no more).

                        cheers Chris Maunder

                        R 2 Replies Last reply
                        0
                        • L Lost User

                          seriously, what's the point of upgrading target in an existing development (unless still very fresh)? If a mature project is happy in say 4.0 it really should be left there and NOT pushed to the new target. 1. avoid these issues 2. keeps installation simple - if got multiple proj's in a solution some not updated then have to install the multiple .net's on older machines 3. it's not as if ms fix anything - they just add more [mostly bloat - even then even older versions can achieve identical results perhaps albeit with a few more lines of code]. And really for the sake of "compatibility" often they can't or shouldn't ever fix some of the "mysterious"/"expected" issues/behaviours... many of their own apps would break if they did that. Yes [nearly all] exception causing bugs can be fixed, but operating behaviours even if they seem wrong or non standard must never be changed ... imagine if they decided next version of .net would zero base VB arrays (and all the dumb-ass newbie devs quickly open VS and flick projects to the new target?) In short: - minimally a waste of time, but in fact - a very bad practice.

                          Sin tack the any key okay

                          S Offline
                          S Offline
                          SoMad
                          wrote on last edited by
                          #25

                          It was not a mature project. The project was shelved years before and it was decided to dig it up and restart the effort. It is as simple as that.

                          "When you don't know what you're doing it's best to do it quickly" - Jase #DuckDynasty

                          1 Reply Last reply
                          0
                          • L Lost User

                            seriously, what's the point of upgrading target in an existing development (unless still very fresh)? If a mature project is happy in say 4.0 it really should be left there and NOT pushed to the new target. 1. avoid these issues 2. keeps installation simple - if got multiple proj's in a solution some not updated then have to install the multiple .net's on older machines 3. it's not as if ms fix anything - they just add more [mostly bloat - even then even older versions can achieve identical results perhaps albeit with a few more lines of code]. And really for the sake of "compatibility" often they can't or shouldn't ever fix some of the "mysterious"/"expected" issues/behaviours... many of their own apps would break if they did that. Yes [nearly all] exception causing bugs can be fixed, but operating behaviours even if they seem wrong or non standard must never be changed ... imagine if they decided next version of .net would zero base VB arrays (and all the dumb-ass newbie devs quickly open VS and flick projects to the new target?) In short: - minimally a waste of time, but in fact - a very bad practice.

                            Sin tack the any key okay

                            K Offline
                            K Offline
                            KBZX5000
                            wrote on last edited by
                            #26

                            I respectfully disagree. :) In my experience, it's often more cost effective to upgrade projects whenever they're in active development. In part, because the newer toolchains are much easier to develop for. Easy build settings, better CI support, better reporting. In part, because the old toolchains become obsolete.. and you need people with experience to fix those problems. But most importantly: management expects everything to work everywhere whenever they feel like it. Migrating to the most flexible target is always the safest bet. :)

                            1 Reply Last reply
                            0
                            • C Chris Maunder

                              "Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed." Either they aren't actually listed or they are buried so deep as to be invisible. To the devs who wrote this pointlessness: If you can see there's a conflict why not list it then and there? What about: "Found conflicts between different versions of the same dependent assembly "Assembly.dll (1.2.3.4)" and "Assembly.dll (1.2.3.5)" that could not be resolved." There - was that hard?

                              cheers Chris Maunder

                              G Offline
                              G Offline
                              GKP1992
                              wrote on last edited by
                              #27

                              Hi Chris, Can you tell us which version of VS you are using? I think I have seen something like

                              Chris Maunder wrote:

                              "Found conflicts between different versions of the same dependent assembly "Assembly.dll (1.2.3.4)" and "Assembly.dll (1.2.3.5)" that could not be resolved."

                              in VS2015.

                              I am not the one who knocks. I never knock. In fact, I hate knocking. Just barge in will'Ya?

                              C 1 Reply Last reply
                              0
                              • L Lost User

                                seriously, what's the point of upgrading target in an existing development (unless still very fresh)? If a mature project is happy in say 4.0 it really should be left there and NOT pushed to the new target. 1. avoid these issues 2. keeps installation simple - if got multiple proj's in a solution some not updated then have to install the multiple .net's on older machines 3. it's not as if ms fix anything - they just add more [mostly bloat - even then even older versions can achieve identical results perhaps albeit with a few more lines of code]. And really for the sake of "compatibility" often they can't or shouldn't ever fix some of the "mysterious"/"expected" issues/behaviours... many of their own apps would break if they did that. Yes [nearly all] exception causing bugs can be fixed, but operating behaviours even if they seem wrong or non standard must never be changed ... imagine if they decided next version of .net would zero base VB arrays (and all the dumb-ass newbie devs quickly open VS and flick projects to the new target?) In short: - minimally a waste of time, but in fact - a very bad practice.

                                Sin tack the any key okay

                                B Offline
                                B Offline
                                BryanFazekas
                                wrote on last edited by
                                #28

                                I disagree as well. At some point most applications WILL need to be updated. It is far more effective to upgrade the framework or IDE one step at a time, rather than a huge jump when forced by other priorities. Currently I support an oolldd vendor product. Last year it was still being compiled in Visual Studio 2005, but for various reasons needed to be upgraded. The vendor put in a lot of effort, tried to jump to VS2013, it failed. They had to regroup and compile first in VS2008 and then VS2010. They finally got it into VS2012, then quit as the product is being sunsetted. At some point all software, including frameworks and compilers/IDEs, become obsolete. The business need for a product doesn't become obsolete, and business priorities and costs may keep a program around long after it should be rewritten. [this vendor product is the poster child!] My team is writing a replacement. The current plan for the project I'm on is to stay on VS2015 (IDE we started with) until we publish. After that, when major changes need to be made, investigate the current MS IDE to determine if we should upgrade the framework and/or IDE. We probably won't do minor framework changes unless we need to, but major version will get looked at. By being proactive on keeping it current, this program will likely still be running fine 10 years from now. At some point it will need to be rewritten ... but that's a business decision made above my pay grade. Until such time, we'll keep this puppy in optimal shape to meet the business need.

                                1 Reply Last reply
                                0
                                • C Chris Maunder

                                  Yes - been using it. Would be great if it actually (a) gave some insight and not just a 200 line list of events, and (b) actually worked consistently (worked once then no more).

                                  cheers Chris Maunder

                                  R Offline
                                  R Offline
                                  raddevus
                                  wrote on last edited by
                                  #29

                                  Yeah, the tool is quite brittle.

                                  Chris Maunder wrote:

                                  (worked once then no more)

                                  As I read that I remembered having that issue in the past too. What was it? What was it?:~ Sorry, I just can't remember. Good luck, hope you get it worked out.

                                  1 Reply Last reply
                                  0
                                  • C Chris Maunder

                                    Yes - been using it. Would be great if it actually (a) gave some insight and not just a 200 line list of events, and (b) actually worked consistently (worked once then no more).

                                    cheers Chris Maunder

                                    R Offline
                                    R Offline
                                    raddevus
                                    wrote on last edited by
                                    #30

                                    Oh look...more IE goodness. :(

                                    microsoft docs explain problem

                                    Note The Assembly Binding Log Viewer (Fuslogvw.exe) uses the Internet Explorer (IE) cache to store its binding log. Due to occasional corruption in the IE cache, the Assembly Binding Log Viewer (Fuslogvw.exe) can sometimes stop showing new binding logs in the viewing window. As a result of this corruption, the .NET binding infrastructure (fusion) cannot write to or read from the binding log. (This issue is not encountered if you use a custom log path.) To fix the corruption and allow fusion to show binding logs again, clear the IE cache by deleting temporary internet files from within the IE Internet Options dialog.

                                    1 Reply Last reply
                                    0
                                    • C Chris Maunder

                                      "Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed." Either they aren't actually listed or they are buried so deep as to be invisible. To the devs who wrote this pointlessness: If you can see there's a conflict why not list it then and there? What about: "Found conflicts between different versions of the same dependent assembly "Assembly.dll (1.2.3.4)" and "Assembly.dll (1.2.3.5)" that could not be resolved." There - was that hard?

                                      cheers Chris Maunder

                                      S Offline
                                      S Offline
                                      Steve Naidamast
                                      wrote on last edited by
                                      #31

                                      I have had to spend days cleaning up the resulting mess that such issues cause and have had to re-install my entire Windows once on account of discrepancies between framework versions and Visual Studio. In both cases it was found to be a problem with the commercial release builds of Visual Studio. What happens is that you install Visual Studio with let's say framework version 4.6.1 with a certain identifying set of identifiers for the version but there are multiple versions of each framework level. Then you install an application that also requires 4.6.1 but has a different version of the same exact framework. Guess what? Visual Studio blows up worse than a hydrogen bomb. What is left in its wake is a corrupted system that cannot be cleaned out properly. The only way to do this is to re-install the OS or get a good tech-rep at Microsoft who knows what they are doing to help you clean up the mess. The first time my tech-rep and I were able to clean up the mess after three days of continuously working with each other. The second time I figured it would take as much time to simply do a re-install of the Windows OS. As a result of these experiences I cannot release my products with the capacity to install a version of the .NET Framework for fear that it may destroy a developers Visual Studio installation.

                                      Steve Naidamast Sr. Software Engineer Black Falcon Software, Inc. blackfalconsoftware@outlook.com

                                      C W 2 Replies Last reply
                                      0
                                      • C Chris Maunder

                                        "Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed." Either they aren't actually listed or they are buried so deep as to be invisible. To the devs who wrote this pointlessness: If you can see there's a conflict why not list it then and there? What about: "Found conflicts between different versions of the same dependent assembly "Assembly.dll (1.2.3.4)" and "Assembly.dll (1.2.3.5)" that could not be resolved." There - was that hard?

                                        cheers Chris Maunder

                                        W Offline
                                        W Offline
                                        Wearwolf
                                        wrote on last edited by
                                        #32

                                        That's not that terrible of an error message. It's trying to tell you what you need to do to fix the issue. Although if I remember correctly they changed what level of logging was required to get the assembly load information. I got this exception the other day "Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints" from calling "EndLoadData" on a DataTable. Which constraint caused an issue? Which column? Which row? Who knows. The exception was coming from DataSet.EnableConstraints() which gets called by DataTable.EndLoadData(). I tried to use .NET source stepping but it wouldn't load DataSet.cs for some reason. Looking up the function in the .NET reference source I saw that the function loops through all constraints on a table and tries to enable them. Instead of throwing an exception when it found a constraint it couldn't enable it just kept a flag saying that one of the constraints had an error and then at the end it checks that flag and throws an exception if its true. At that point it no longer knows what constraint caused an issue. I ended up copying code out of the reference source to recreate the function and using reflection to call internal methods so I could find out which constraint and which column had the error. After that it was easy to fix.

                                        C 1 Reply Last reply
                                        0
                                        • G GKP1992

                                          Hi Chris, Can you tell us which version of VS you are using? I think I have seen something like

                                          Chris Maunder wrote:

                                          "Found conflicts between different versions of the same dependent assembly "Assembly.dll (1.2.3.4)" and "Assembly.dll (1.2.3.5)" that could not be resolved."

                                          in VS2015.

                                          I am not the one who knocks. I never knock. In fact, I hate knocking. Just barge in will'Ya?

                                          C Offline
                                          C Offline
                                          Chris Maunder
                                          wrote on last edited by
                                          #33

                                          VS 2017.3 It's to do with the nuget breaking changes and MS moving nuget system packages back into the framework. Evidently they will provide some guidance on this issue. Maybe.

                                          cheers Chris Maunder

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups