Какие dll (и) MSVCR мне следует включить в каталог моего приложения, если это чистый MSIL (/ clr: pure)? - PullRequest
0 голосов
/ 20 сентября 2011

Я искал в Интернете информацию об этом и не могу прийти к безопасному выводу, не найдя механизма, на котором не установлена ​​ни одна из CRT-библиотек.Мое приложение очень маленькое, и я не хочу обременять пользователей потенциально раздутыми установками или появлением ненужных загружаемых материалов.

Я испытываю желание включить 220kb msvcm90.dll (CБиблиотека импорта времени выполнения скомпилирована как 100% чистый код MSIL. Весь код соответствует спецификации ECMA URT для MSIL) и 2 КБ Microsoft.VC90.CRT.manifest в каталоге приложения.Но http://msdn.microsoft.com/en-us/library/abx4dbyh%28v=VS.90%29.aspx, утверждает, что теперь они хранятся в глобальном кэше сборок.

Может кто-нибудь проверить, пожалуйста, мое предлагаемое решение?

Многое из того, что я сказал, подкрепленок этому сообщению распространяемые Visual C ++ без использования VCRedist_x86.exe , но, хотя у него есть возражения, я все еще буду убежден звуком независимых показаний.

Пожалуйста, ответы могут дать ссылку намой манифест, который имеет только одну зависимость:

<dependency>
  <dependentAssembly>
    <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='idontknowenuff' />
  </dependentAssembly>
</dependency>

Поскольку это не указывает только управляемую среду выполнения, похоже, что мое решение не будет работать без полной установки (загрузка 4 Мб от MS).

Чтобы еще больше усложнить ситуацию, версия среды выполнения в моем каталоге VC / redist - 9.0.30729.1, но я предполагаю, что она будет обратно совместима.

Ответы [ 2 ]

0 голосов
/ 21 сентября 2011

Если вы запускаете в отладчике (включите смешанную управляемую + встроенную отладку), в окне модулей должно отображаться, какие DLL загружаются во время работы вашей программы.

0 голосов
/ 20 сентября 2011

Появились книги Google:

«Если вы скомпилируете код, использующий CRT с параметром / clr или / clr: pure, вы получите соответствующий чистый MSIL CRT, связанный с вместо собственного CRT», Гордон Хогенсон - 2006

Это кажется неправильным, поскольку ILDASM показывает ".module extern MSVCR90.dll" в качестве первой строки встроенного манифеста. Я оставлю этот ответ здесь для GC или как напоминание, что не все, что публикуется, является Евангелием.

...