Использование csc linkresource - PullRequest
0 голосов
/ 07 октября 2019

У меня есть сборка .net, которая использует родную dll. IIS копирует файлы в папку «Temporary ASP.NET Files». И я хочу, чтобы IIS копировал dll вместе с родным dll. Я пытался использовать манифестные зависимости, но безуспешно. Я слышал, что могу использовать опцию csc -linkresource для нативной dll, как описано здесь

Скомпилировать A.cs в DLL, ссылку на нативныйDLL N.dll и поместите вывод в глобальный кэш сборок (GAC). В этом примере AAC и N.dll будут находиться в GAC.

csc -linkresource: N.dll -t: библиотека A.cs gacutil -i A.dll

Я хочу использовать эту опцию, но

Эта опция компилятора недоступна в Visual Studio и не может быть изменена программно.

Но они заставили меня не использовать визуальнуюСтудийный проект и построить его с помощью CSC напрямую. Это слишком сложная задача.

Можно ли изменить файл проекта для выполнения этой задачи?

Я видел эту статью, но она устарела и не содержит никакой полезной информации. Информация. Я использую 2019 Visual Studio.

Ответы [ 2 ]

1 голос
/ 08 октября 2019

Решение было слишком простым для 2019 Studio!

Я просто добавил несколько строк в файл проекта и ... вуаля!

  <ItemGroup>
    <LinkResource Include="..\Debug\NativeDll64.dll">
      <Link>NativeDll64.dll</Link>
    </LinkResource>
    <LinkResource Include="..\Debug\NativeDll32.dll">
      <Link>NativeDll32.dll</Link>
    </LinkResource>
  </ItemGroup>

И эти два файла теперь скопированыв GAC или временные файлы ASP.NET вместе с управляемой сборкой.

0 голосов
/ 08 октября 2019

Кажется, что вы запускаете свое приложение в IIS, кроме перезаписи цели CoreCompile, может быть, вы также можете рассмотреть возможность отключения shadow copying.

Установите shadowCopyBinAssemblies в false вweb.config.

<configuration>
  ...
  <system.web>
    ...
    <hostingEnvironment shadowCopyBinAssemblies="false" />

И тогда он будет загружать сборки из папки bin вместо папки Temporary. И проще скопировать нативные сборки в папку bin. Многие темы о msbuild могут помочь вам. Подробнее о теневом копировании см. этот блог .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...