Udostępnij za pośrednictwem


Questions and suggestions

I set the comment limit to 90 days. As a result, the original post for questions and suggestions has expired. This one is just to re-enable that.

Please post any questions or suggestions in this blog.

Questions and suggestions should related to Fusion and CLR Loader.

For example:

Things in Fusion/CLR that you don't understand, or you feel confusing and requires more detailed explanation.
Things that you feel awkward in the current implementation and you want to see a change in the future.
etc.

Remember, I don't do diagnose. Use newsgroup, MSDN forum, PSS for that.

Thanks for reading.

Comments

  • Anonymous
    April 20, 2006
    The comment has been removed
  • Anonymous
    April 20, 2006
    The comment has been removed
  • Anonymous
    May 01, 2006
    We have moved from VS2003 to VS2005 for our C++ programs. One change is that the CRT is now, as you put it, "fusionized".
    Our programs are often installed by large corporations. Simple and reliable deployment is crucial. The installation is based on Windows Installer. This worked very well while we used VS2003. We need to support both "Per Machine" and "Per User" install modes.
    We have several products with some shared COM modules. We install the shared modules under Program Files/Common Files/. The non-shared parts of the applications are installed in Program Files/.
    We now have some problems:
    - We cannot use the “merge modules” for CRT that install in SxS since this prevents the installation to run in “Per User” mode.
    - We would rather not put a copy of the CRT in each directory. This would make the CRT load twice for each process and it prevents servicing in Windows 2000.

    It would be very nice if you could install things to SxS in a “Per User” mode installation. Why are you prevented from doing this today? Any ideas how we best should install CRT in order to:
    - Make a single installation program that can be installed “Per Machine” and “Per User”.
    - Avoid loading the CRT twice (or more).
    - Get “serviceability” in Windows 2000.

    See also my question here:
    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=183213&SiteID=1
  • Anonymous
    May 01, 2006
    Thanks Thomas, very good questions.

    I'll skip your last question, and answer your first two. That is not much you can do in Windows 2000 other than copy everything in system32.

    1. Per user WinSxs.

    .Net framework GAC does not support per user GAC. I am not sure where you get the information but we never support per-user GAC. See my article http://blogs.msdn.com/junfeng/archive/2005/05/24/421303.aspx for more detail.

    2. Avoid loading CRT twice.

    Yes, it is a known deficiency in the current Sxs architecture. Fusion/CLR dodges the problem with codebase hint.

    But since all of your apps are in local machine, you can use hardlink to workaround it: Only one copy carry the physical file. The others are hardlink to that one. You have some work to do but it should be doable.

    User installation apps are not the best enterprises want. Maybe you can find a way to install apps per-machine, but activate per-user?
  • Anonymous
    May 02, 2006
    The comment has been removed
  • Anonymous
    May 02, 2006
    The comment has been removed
  • Anonymous
    May 03, 2006
    I asked the memory manager folks on the memory issue. They share the same page.

    I can't help you on the MSI question though, but you can try to ask in MSI team's blog:

    http://blogs.msdn.com/windows_installer_team/
  • Anonymous
    June 01, 2006
  1. Type.GetGenericArguments() is there a fringe condition where I may have to reorder the arguments I am given back? Each item also has a position, random testing says they are always in order but ...


    2) Why the excitement about conditon variables .. I was under the impression they are roughly equivalent to events (posix compatibility?)

    3) What thoughts if any do you have on the breaking changed introduced in 2.0 dealing with floating point precision.

    http://geekswithblogs.net/gyoung/archive/2006/05/30/80119.aspx

    Thanks!

  • Anonymous
    June 01, 2006
    never mind my previous post .. I misread the top of your blog .. my mistake.
  • Anonymous
    June 01, 2006
    See code here http://geekswithblogs.net/gyoung/archive/2006/04/27/76533.aspx

    1) Why does the dynamic assembly load twice :)
    2) Why does the assembly which is set to be generated in memory still generate a file that can be linked to (it seems to me it always creates a temp file but as soon as you give it a name it no longer treats it as if it were an in memory assembly)
  • Anonymous
    June 15, 2006
    I have a .NET control hosted in a HTML page like this:
    <link rel="Configuration" href="/IEControl.dll.config">
    <object classid="/IEControl.dll#MyNamespace.MyClass"></object>

    This control needs to call the method "RemotingConfiguration.Configure (configFile)" to configure a remoting channel.

    Now, the argument 'configFile' cannot be an URL, so to make the call work, I have to download IEControl.dll.config in a local directory and then pass this local file to the RemotingConfiguration.Configure method.

    What I am asking is that since the config file is already in the IE cache and Fusion knows its path (I can see from its log), how can I get that path as well.

    Thanks
  • Anonymous
    June 18, 2006
    I have looked all over MSDN documentation and in newsgroups and I can't find a simple answer to this. Is there a way to programmatically enumerate assemblies in the GAC without just going to the file system? I know I can do it with gacutil but I want to diagnose an application running on end users machines and I'd like to do it "the right way" if there is such a mechanism. Thanks for any insight you can provide.