代码之家  ›  专栏  ›  技术社区  ›  Alexey Subbota

csc linkresource选项的使用

  •  0
  • Alexey Subbota  · 技术社区  · 6 年前

    我有使用本机dll的.net程序集。IIS将文件复制到“临时”ASP.NET文件的文件夹。我希望IIS将dll和本机dll一起复制。我试图使用显式依赖关系,但没有成功。我听说我可以使用csc选项 -链接资源 对于本机dll,如前所述 here

    将A.cs编译成DLL,链接到本机DLL N.DLL,并将 全局程序集缓存(GAC)中的输出。在本例中,两个

    csc-林kresource:N.dll-t:library A.cs gacutil-i A.dll

    我想用这个选项但是

    此编译器选项在Visual Studio中不可用,因此不能 以编程方式更改。

    我可以更改项目文件来完成此任务吗?

    saw

    0 回复  |  直到 6 年前
        1
  •  1
  •   Alexey Subbota    6 年前

    这个解决方案对于2019工作室来说太简单了!

    我刚在项目文件中添加了几行…瞧!

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

        2
  •  0
  •   LoLance    6 年前

    CoreCompile 目标,也许你也可以考虑关掉 shadow copying .

    shadowCopyBinAssemblies false web.config .

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

    然后它将从 bin 文件夹而不是 Temporary 文件夹。而且更容易 copy native assemblies 到bin文件夹。关于msbuild的许多主题可以给您提供帮助。有关卷影复制的更多详细信息,请参阅 this blog .